C# Directory.GetDirectories的代码示例

通过代码示例来学习C# Directory.GetDirectories方法

通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。


Directory.GetDirectories是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的Directory.GetDirectories() 已经帮大家高亮显示了,大家可以重点学习Directory.GetDirectories() 方法的写法,从而快速掌握该方法的应用。

Directory.GetDirectories的代码示例1 - CloneCreatesCorrectFilesInRoot()

    using System.IO;

        [TestCase]
        public void CloneCreatesCorrectFilesInRoot()
        {
            GVFSFunctionalTestEnlistment enlistment = GVFSFunctionalTestEnlistment.CloneAndMount(GVFSTestConfig.PathToGVFS);
            try
            {
                string[] files = Directory.GetFiles(enlistment.EnlistmentRoot);
                files.Length.ShouldEqual(1);
                files.ShouldContain(x => Path.GetFileName(x).Equals("git.cmd", StringComparison.Ordinal));
                string[] directories = Directory.GetDirectories(enlistment.EnlistmentRoot);
                directories.Length.ShouldEqual(2);
                directories.ShouldContain(x => Path.GetFileName(x).Equals(GVFSTestConfig.DotGVFSRoot, StringComparison.Ordinal));
                directories.ShouldContain(x => Path.GetFileName(x).Equals("src", StringComparison.Ordinal));
            }
            finally
            {
                enlistment.UnmountAndDeleteAll();
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:21,代码来源:CloneTests.cs

在CloneCreatesCorrectFilesInRoot()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例2 - RecursiveFileCopyImpl()

    using System.IO;

        private void RecursiveFileCopyImpl(string sourcePath, string targetPath, bool copySubFolders, bool hideErrorsFromStdout)
        {
            if (!Directory.Exists(targetPath))
            {
                Directory.CreateDirectory(targetPath);
            }

            foreach (string filePath in Directory.EnumerateFiles(sourcePath))
            {
                string fileName = Path.GetFileName(filePath);
                try
                {
                    string sourceFilePath = Path.Combine(sourcePath, fileName);
                    if (!GVFSPlatform.Instance.FileSystem.IsSocket(sourceFilePath) &&
                        !GVFSPlatform.Instance.FileSystem.IsExecutable(sourceFilePath))
                    {
                        File.Copy(
                            Path.Combine(sourcePath, fileName),
                            Path.Combine(targetPath, fileName));
                    }
                }
                catch (Exception e)
                {
                    this.WriteMessage(
                        string.Format(
                            "Failed to copy '{0}' in {1} with exception {2}",
                            fileName,
                            sourcePath,
                            e),
                        hideErrorsFromStdout);
                }
            }

            if (copySubFolders)
            {
                DirectoryInfo dir = new DirectoryInfo(sourcePath);
                foreach (DirectoryInfo subdir in dir.GetDirectories())
                {
                    string targetFolderPath = Path.Combine(targetPath, subdir.Name);
                    try
                    {
                        this.RecursiveFileCopyImpl(subdir.FullName, targetFolderPath, copySubFolders, hideErrorsFromStdout);
                    }
                    catch (Exception e)
                    {
                        this.WriteMessage(
                            string.Format(
                                "Failed to copy subfolder '{0}' to '{1}' with exception {2}",
                                subdir.FullName,
                                targetFolderPath,
                                e),
                            hideErrorsFromStdout);
                    }
                }
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:58,代码来源:DiagnoseVerb.cs

在RecursiveFileCopyImpl()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例3 - GetLooseObjectFiles()

    using System.IO;

        private List GetLooseObjectFiles()
        {
            List looseObjectFiles = new List();
            foreach (string directory in Directory.GetDirectories(this.GitObjectRoot))
            {
                // Check if the directory is 2 letter HEX
                if (Regex.IsMatch(directory, @"[/\\][0-9a-fA-F]{2}$"))
                {
                    string[] files = Directory.GetFiles(directory);
                    looseObjectFiles.AddRange(files);
                }
            }

            return looseObjectFiles;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:17,代码来源:LooseObjectStepTests.cs

在GetLooseObjectFiles()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例4 - DeleteDirectory()

    using System.IO;

        public virtual void DeleteDirectory(string path, bool recursive = true, bool ignoreDirectoryDeleteExceptions = false)
        {
            if (!Directory.Exists(path))
            {
                return;
            }

            DirectoryInfo directory = new DirectoryInfo(path);

            if (recursive)
            {
                foreach (FileInfo file in directory.GetFiles())
                {
                    file.Attributes = FileAttributes.Normal;
                    file.Delete();
                }

                foreach (DirectoryInfo subDirectory in directory.GetDirectories())
                {
                    this.DeleteDirectory(subDirectory.FullName, recursive, ignoreDirectoryDeleteExceptions);
                }
            }

            try
            {
                directory.Delete();
            }
            catch (Exception)
            {
                if (!ignoreDirectoryDeleteExceptions)
                {
                    throw;
                }
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:37,代码来源:PhysicalFileSystem.cs

在DeleteDirectory()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例5 - TearDown()

    using System.IO;

        [TearDown]
        public void TearDown()
        {
            GitProcess.Invoke(this.Enlistment.RepoRoot, "clean -xdf");
            GitProcess.Invoke(this.Enlistment.RepoRoot, "reset --hard");

            this.gvfsProcess.Sparse("--disable", shouldSucceed: true);

            // Remove all sparse folders should make all folders appear again
            string[] directories = Directory.GetDirectories(this.Enlistment.RepoRoot, "*", SearchOption.AllDirectories)
                .Where(x => !x.Contains(Path.DirectorySeparatorChar + ".git" + Path.DirectorySeparatorChar))
                .ToArray();
            directories.ShouldMatchInOrder(this.allDirectories);
            this.ValidateFoldersInSparseList(NoSparseFolders);
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:17,代码来源:SparseTests.cs

在TearDown()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例6 - DeleteIfExists()

    using System.IO;

        /// 
        /// Deletes File/Directory from by the specified path if it exists.
        /// 
        /// The path.
        /// if set to false handle all exceptions silently.
        /// 
        public static string DeleteIfExists(this string path, bool @throw = false)
        {
            void deleteFile(string file)
            {
                try
                {
                    var fullPath = IO.Path.GetFullPath(file);
                    if (IO.File.Exists(fullPath))
                        IO.File.Delete(fullPath);
                }
                catch
                {
                    if (@throw)
                        throw;
                }
            }

            void deleteDir(string file)
            {
                try
                {
                    var fullPath = IO.Path.GetFullPath(file);
                    if (IO.Directory.Exists(fullPath))
                        IO.Directory.Delete(fullPath);
                }
                catch
                {
                    if (@throw)
                        throw;
                }
            }

            if (path.IsDirectory())
            {
                IO.Directory.GetFiles(path, "*", IO.SearchOption.AllDirectories)
                            .ForEach(deleteFile);

                IO.Directory.GetDirectories(path, "*", IO.SearchOption.AllDirectories)
                            .OrderByDescending(x => x)
                            .ForEach(deleteDir);

                deleteDir(path);
            }
            else
            {
                deleteFile(path);
            }

            return path;
        }
    

开发者ID:oleg-shilo,项目名称:wixsharp,代码行数:58,代码来源:Extensions.cs

在DeleteIfExists()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例7 - GetAllItems()

    using System.IO;

        /// 
        /// Analyses  and returns all files (including subdirectories) matching .
        /// 
        /// The base directory for file analysis. It is used in conjunction with
        /// relative . Though  takes precedence if it is an absolute path.
        /// Array of  instances, which are either  or/and  objects.
        /// Parent Wix# directory
        public WixEntity[] GetAllItems(string baseDirectory, Dir parentWixDir = null)
        {
            if (IO.Path.IsPathRooted(Directory))
                baseDirectory = Directory;
            if (baseDirectory.IsEmpty())
                baseDirectory = Environment.CurrentDirectory;

            baseDirectory = IO.Path.GetFullPath(baseDirectory);

            string rootDirPath;
            if (IO.Path.IsPathRooted(Directory))
                rootDirPath = Directory;
            else
                rootDirPath = Utils.PathCombine(baseDirectory, Directory);

            void AgregateSubDirs(Dir parentDir, string dirPath)
            {
                foreach (var subDirPath in IO.Directory.GetDirectories(dirPath))
                {
                    var dirName = IO.Path.GetFileName(subDirPath);

                    Dir subDir = parentDir.Dirs.FirstOrDefault(dir => dir.Name.SameAs(dirName, ignoreCase: true));

                    if (subDir == null)
                    {
                        subDir = new Dir(dirName);
                        parentDir.AddDir(subDir);
                    }

                    subDir.AddFeatures(this.ActualFeatures);
                    subDir.AddDirFileCollection(
                                                new DirFiles(IO.Path.Combine(subDirPath, this.IncludeMask))
                                                {
                                                    Feature = this.Feature,
                                                    Features = this.Features,
                                                    AttributesDefinition = this.AttributesDefinition,
                                                    Attributes = this.Attributes,
                                                    Filter = this.Filter,
                                                    OnProcess = this.OnProcess
                                                });

                    AgregateSubDirs(subDir, subDirPath);
                }
            };

            var result = new List
            {
                new DirFiles(IO.Path.Combine(rootDirPath, this.IncludeMask))
                {
                    Feature = this.Feature,
                    Features = this.Features,
                    AttributesDefinition = this.AttributesDefinition,
                    Attributes = this.Attributes.Clone(),
                    Filter = this.Filter,
                    OnProcess = this.OnProcess
                }
            };

            if (!IO.Directory.Exists(rootDirPath))
                throw new IO.DirectoryNotFoundException(rootDirPath);

            foreach (var subDirPath in System.IO.Directory.GetDirectories(rootDirPath))
            {
                var dirName = IO.Path.GetFileName(subDirPath);

                var subDir = parentWixDir?.Dirs.FirstOrDefault(dir => dir.Name.SameAs(dirName, ignoreCase: true));

                if (subDir == null)
                {
                    subDir = new Dir(dirName);
                    result.Add(subDir);
                }

                subDir.AddFeatures(this.ActualFeatures);
                subDir.AddDirFileCollection(
                                            new DirFiles(IO.Path.Combine(subDirPath, this.IncludeMask))
                                            {
                                                Feature = this.Feature,
                                                Features = this.Features,
                                                AttributesDefinition = this.AttributesDefinition,
                                                Attributes = this.Attributes,
                                                Filter = this.Filter,
                                                OnProcess = this.OnProcess
                                            });

                AgregateSubDirs(subDir, subDirPath);
            }

            return result.ToArray();
        }
    

开发者ID:oleg-shilo,项目名称:wixsharp,代码行数:99,代码来源:Files.cs

在GetAllItems()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞

Directory.GetDirectories的代码示例8 - OnBeforeExpand()

    using System.IO;

        public void OnBeforeExpand()
        {
            if (IsExpanded || !CanExpand) return;
            Nodes.Clear();
            foreach (string str in Directory.GetDirectories($"{_path}\\"))
            {
                if (File.GetAttributes(str).HasFlag(FileAttributes.Directory))
                    Nodes.Add(new ExplorerFolder(str));
            }
            foreach (string str in Directory.GetFiles($"{_path}\\"))
            {
                if (!File.GetAttributes(str).HasFlag(FileAttributes.Directory))
                    Nodes.Add(new ExplorerFile(str));
            }
        }
    

开发者ID:KillzXGaming,项目名称:Switch-Toolbox,代码行数:17,代码来源:ExplorerFolder.cs

在OnBeforeExpand()方法中,Directory的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

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