当前位置: 首页>>代码示例>>C#>>正文


C# IDirectoryInfo.EnumerateFileSystemInfos方法代码示例

本文整理汇总了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);
        }
开发者ID:AlexanderSher,项目名称:RTVS-Old,代码行数:25,代码来源:DirectoryInfoStubFactory.cs


注:本文中的IDirectoryInfo.EnumerateFileSystemInfos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。