本文整理汇总了C#中IDirectoryInfo.EnumerateFileSystemInfos方法的典型用法代码示例。如果您正苦于以下问题:C# IDirectoryInfo.EnumerateFileSystemInfos方法的具体用法?C# IDirectoryInfo.EnumerateFileSystemInfos怎么用?C# IDirectoryInfo.EnumerateFileSystemInfos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDirectoryInfo
的用法示例。
在下文中一共展示了IDirectoryInfo.EnumerateFileSystemInfos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddToDirectory
private static void AddToDirectory(IDirectoryInfo directory, IFileSystemInfo child) {
var children = (List<IFileSystemInfo>)directory.EnumerateFileSystemInfos();
int index = children.BinarySearch(child, Comparer<IFileSystemInfo>.Create((x, y) => string.Compare(x.FullName, y.FullName, StringComparison.OrdinalIgnoreCase)));
if (index >= 0) {
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Item with name {0} already exists in folder {1}", child.FullName, directory.FullName));
}
if (child.TraverseBreadthFirst(f => (f as IDirectoryInfo)?.EnumerateFileSystemInfos()).Contains(directory)) {
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Circular dependency. Item {0} is a parent of {1} already", child.FullName, directory.FullName));
}
var directoryChild = child as IDirectoryInfo;
if (directoryChild != null) {
var oldParent = (List<IFileSystemInfo>)directoryChild.Parent?.EnumerateFileSystemInfos();
oldParent?.Remove(directoryChild);
directoryChild.Parent.Returns(directory);
} else {
var fileChild = (IFileInfo)child;
var oldParent = (List<IFileSystemInfo>)fileChild.Directory?.EnumerateFileSystemInfos();
oldParent?.Remove(fileChild);
fileChild.Directory.Returns(directory);
}
children.Insert(~index, child);
}