C# DirectoryInfo.GetDirectories的代码示例

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

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


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

DirectoryInfo.GetDirectories的代码示例1 - 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()方法中,DirectoryInfo的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

DirectoryInfo.GetDirectories的代码示例2 - TearDownJunctionRoot()

    using System.IO;

        [TearDown]
        public void TearDownJunctionRoot()
        {
            DirectoryInfo junctionsRootInfo = new DirectoryInfo(this.junctionsRoot);
            if (junctionsRootInfo.Exists)
            {
                foreach (DirectoryInfo junction in junctionsRootInfo.GetDirectories())
                {
                    junction.Delete();
                }

                junctionsRootInfo.Delete();
            }
        }
    

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

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

DirectoryInfo.GetDirectories的代码示例3 - GetRoot()

    using System.IO;

        public static string GetRoot(string startingDirectory, string rootName)
        {
            startingDirectory = startingDirectory.TrimEnd(Path.DirectorySeparatorChar);
            DirectoryInfo dirInfo;

            try
            {
                dirInfo = new DirectoryInfo(startingDirectory);
            }
            catch (Exception)
            {
                return null;
            }

            while (dirInfo != null)
            {
                if (dirInfo.Exists)
                {
                    DirectoryInfo[] dotGVFSDirs = new DirectoryInfo[0];

                    try
                    {
                        dotGVFSDirs = dirInfo.GetDirectories(rootName);
                    }
                    catch (IOException)
                    {
                    }

                    if (dotGVFSDirs.Count() == 1)
                    {
                        return dirInfo.FullName;
                    }
                }

                dirInfo = dirInfo.Parent;
            }

            return null;
        }
    

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

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

DirectoryInfo.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()方法中,DirectoryInfo的代码示例类中的GetDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

DirectoryInfo.GetDirectories的代码示例5 - DeleteDirectory()

    using System.IO;

        public override string DeleteDirectory(string path)
        {
            DirectoryInfo directory = new DirectoryInfo(path);

            foreach (FileInfo file in directory.GetFiles())
            {
                file.Attributes = FileAttributes.Normal;

                RetryOnException(() => file.Delete());
            }

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

            RetryOnException(() => directory.Delete());
            return string.Empty;
        }
    

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

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

DirectoryInfo.GetDirectories的代码示例6 - Install()

    using System.IO;
        static void Install()
        {
            Console.WriteLine("Installing...");
            foreach (string dir in Directory.GetDirectories("master/"))
            {
                SetAccessRule(folderDir);
                SetAccessRule(dir);

                string dirName = new DirectoryInfo(dir).Name;
                string destDir = Path.Combine(folderDir, dirName + @"\");

                //Skip hash directory
                if (dirName.Equals("Hashes", StringComparison.CurrentCultureIgnoreCase))
                    continue;

                if (Directory.Exists(destDir))
                {
                    Directory.Delete(destDir, true);
                }

                if (Directory.Exists(destDir))
                    Directory.Delete(destDir, true);

                Directory.Move(dir, destDir);
            }
            foreach (string file in Directory.GetFiles("master/"))
            {
                if (file.Contains("Updater.exe") || file.Contains("Updater.exe.config")
                    || file.Contains("Updater.pdb") || file.Contains("Octokit.dll"))
                    continue;

                SetAccessRule(file);
                SetAccessRule(folderDir);

                string destFile = Path.Combine(folderDir, Path.GetFileName(file));
                if (File.Exists(destFile))
                    File.Delete(destFile);

                File.Move(file, destFile);
            }
        }
    

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

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

DirectoryInfo.GetDirectories的代码示例7 - GetActualEntries()

    using System.IO;

		/// 
		/// Gets a  representing the files in the specified outputDir (where an MSI was extracted).
		/// 
		public static FileEntryGraph GetActualEntries(string outputDir, string forFileName)
		{
			var actualEntries = new FileEntryGraph(forFileName);
			var dir = new DirectoryInfo(outputDir);
			var dirsToProcess = new Stack();
			dirsToProcess.Push(dir);
			while (dirsToProcess.Count > 0)
			{
				dir = dirsToProcess.Pop();
				foreach (var file in dir.GetFiles())
				{
					actualEntries.Add(new FileEntry(file, outputDir));
				}
				foreach (var subDir in dir.GetDirectories())
				{
					dirsToProcess.Push(subDir);
				}
			}
			return actualEntries;
		}
    

开发者ID:activescott,项目名称:lessmsi,代码行数:25,代码来源:FileEntryGraph.cs

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

DirectoryInfo.GetDirectories的代码示例8 - GetProperDirectoryCapitalization()

    using System.IO;

        private static void GetProperDirectoryCapitalization(DirectoryInfo dirInfo, DirectoryInfo childInfo, ref StringBuilder pathBuilder)
        {
            string lowerPath = dirInfo.FullName.ToLower();
            string capitalizedPath;
            if (s_capitalizedPaths.TryGetValue(lowerPath, out capitalizedPath))
            {
                pathBuilder.Append(capitalizedPath);
            }
            else
            {
                if (dirInfo.Parent != null)
                {
                    GetProperDirectoryCapitalization(dirInfo.Parent, dirInfo, ref pathBuilder);
                }
                else
                {
                    // Make root drive always uppercase
                    pathBuilder.Append(dirInfo.Name.ToUpper());
                }
            }
            s_capitalizedPaths.TryAdd(lowerPath, pathBuilder.ToString());

            if (childInfo != null)
            {
                // Note: Avoid double directory separator when at the root.
                if (dirInfo.Parent != null)
                    pathBuilder.Append(Path.DirectorySeparatorChar);
                bool appendChild = true;
                if (dirInfo.Exists)
                {
                    var resultDirs = dirInfo.GetDirectories(childInfo.Name, SearchOption.TopDirectoryOnly);
                    if (resultDirs.Length > 0)
                    {
                        pathBuilder.Append(resultDirs[0].Name);
                        appendChild = false;
                    }
                    else
                    {
                        foreach (var fsInfo in dirInfo.EnumerateFileSystemInfos())
                        {
                            if (string.Compare(fsInfo.Name, childInfo.Name, StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                pathBuilder.Append(fsInfo.Name);
                                appendChild = false;
                                break;
                            }
                        }
                    }
                }
                if (appendChild)
                    pathBuilder.Append(childInfo.Name);
            }
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:55,代码来源:PathUtil.cs

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

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