C# Directory.EnumerateDirectories的代码示例
通过代码示例来学习C# Directory.EnumerateDirectories方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
Directory.EnumerateDirectories是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的Directory.EnumerateDirectories() 已经帮大家高亮显示了,大家可以重点学习Directory.EnumerateDirectories() 方法的写法,从而快速掌握该方法的应用。
Directory.EnumerateDirectories的代码示例1 - LogLooseObjectCount()
using System.IO; private void LogLooseObjectCount(string sourceRoot, string targetRoot, string folderName, string logfile) { try { if (!Directory.Exists(targetRoot)) { Directory.CreateDirectory(targetRoot); } string objectFolder = Path.Combine(sourceRoot, folderName); string targetLog = Path.Combine(targetRoot, logfile); List
lines = new List (); if (Directory.Exists(objectFolder)) { DirectoryInfo objectDirectory = new DirectoryInfo(objectFolder); int countLoose = 0; int countFolders = 0; lines.Add($"Object directory stats for {objectFolder}:"); foreach (DirectoryInfo directory in objectDirectory.EnumerateDirectories()) { if (GitObjects.IsLooseObjectsDirectory(directory.Name)) { countFolders++; int numObjects = directory.EnumerateFiles().Count(); lines.Add($"{directory.Name} : {numObjects, 7} objects"); countLoose += numObjects; } } lines.Add($"Total: {countLoose} loose objects"); } File.WriteAllLines(targetLog, lines.ToArray()); } catch (Exception e) { this.WriteMessage(string.Format( "Failed to log loose object count for {0} in {1} with exception {2}. logfile: {3}", folderName, sourceRoot, e, logfile)); } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:51,代码来源:DiagnoseVerb.cs
在LogLooseObjectCount()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例2 - MainCore()
using System.IO; public static IList
MainCore(RazorProjectEngine projectEngine, string targetProjectDirectory) { var viewDirectories = Directory.EnumerateDirectories(targetProjectDirectory, "Views", SearchOption.AllDirectories); var fileCount = 0; var results = new List (); foreach (var viewDir in viewDirectories) { Console.WriteLine(); Console.WriteLine(" Generating code files for views in {0}", viewDir); var viewDirPath = viewDir.Substring(targetProjectDirectory.Length).Replace('\\', '/'); var cshtmlFiles = projectEngine.FileSystem.EnumerateItems(viewDirPath); if (!cshtmlFiles.Any()) { Console.WriteLine(" No .cshtml files were found."); continue; } foreach (var item in cshtmlFiles) { Console.WriteLine(" Generating code file for view {0}...", item.FileName); results.Add(GenerateCodeFile(projectEngine, item)); Console.WriteLine(" Done!"); fileCount++; } } return results; }
开发者ID:aspnet,项目名称:Razor,代码行数:32,代码来源:Program.cs
在MainCore()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例3 - AddAssembly()
using System.IO; public string AddAssembly(string filePath) { var assemblyDirectory = CreateUniqueDirectory(); var destination = Path.Combine(assemblyDirectory, Path.GetFileName(filePath)); CopyFile(filePath, destination); var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(filePath); var resourcesNameWithoutExtension = fileNameWithoutExtension + ".resources"; var resourcesNameWithExtension = resourcesNameWithoutExtension + ".dll"; foreach (var directory in Directory.EnumerateDirectories(Path.GetDirectoryName(filePath))) { var directoryName = Path.GetFileName(directory); var resourcesPath = Path.Combine(directory, resourcesNameWithExtension); if (File.Exists(resourcesPath)) { var resourcesShadowCopyPath = Path.Combine(assemblyDirectory, directoryName, resourcesNameWithExtension); CopyFile(resourcesPath, resourcesShadowCopyPath); } resourcesPath = Path.Combine(directory, resourcesNameWithoutExtension, resourcesNameWithExtension); if (File.Exists(resourcesPath)) { var resourcesShadowCopyPath = Path.Combine(assemblyDirectory, directoryName, resourcesNameWithoutExtension, resourcesNameWithExtension); CopyFile(resourcesPath, resourcesShadowCopyPath); } } return destination; }
开发者ID:aspnet,项目名称:Razor,代码行数:34,代码来源:ShadowCopyManager.cs
在AddAssembly()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例4 - TakeOwnDirectory()
using System.IO; public static void TakeOwnDirectory(string path) { DirectoryInfo directoryInfo = new(path); DirectorySecurity directorySecurity = directoryInfo.GetAccessControl(); directorySecurity.SetOwner(WindowsIdentity.GetCurrent().User); Privilege p = new(Privilege.TakeOwnership); bool ownershipTaken = false; try { p.Enable(); new DirectoryInfo(path).SetAccessControl(directorySecurity); ownershipTaken = true; } catch (Privileges.PrivilegeNotHeldException e) { Console.WriteLine("Failed to assign privileges. " + e.ToString()); } finally { p.Revert(); } if (ownershipTaken) { AdjustPermissionsForDirectory(path); foreach (string subFile in (System.Collections.Generic.IEnumerable
)Directory.EnumerateFiles(path)) { TakeOwnFile(subFile); } foreach (string subDir in (System.Collections.Generic.IEnumerable )Directory.EnumerateDirectories(path)) { TakeOwnDirectory(subDir); } } }
开发者ID:gus33000,项目名称:UUPMediaCreator,代码行数:41,代码来源:TakeOwn.cs
在TakeOwnDirectory()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例5 - IntegrateSetupFilesIntoImage()
using System.IO; private static bool IntegrateSetupFilesIntoImage( string MediaPath, TempManager tempManager, ProgressCallback progressCallback = null ) { string bootwim = Path.Combine(MediaPath, "sources", "boot.wim"); // // Adding missing files in index 2 // progressCallback?.Log("Preparing assets for Setup PE"); string bgfile = new[] { "background_cli.bmp", "background_svr.bmp", "background_cli.png", "background_svr.png" } .Select(asset => Path.Combine(MediaPath, "sources", asset)) .FirstOrDefault(File.Exists); string winpejpgtmp = tempManager.GetTempPath(); File.WriteAllBytes(winpejpgtmp, Constants.winpejpg); List<(string fileToAdd, string destination)> updateDirectives = new() { (bgfile, Path.Combine("Windows", "System32", "setup.bmp")), (winpejpgtmp, Path.Combine("Windows", "System32", "winpe.jpg")) }; progressCallback?.Log("Backporting missing files"); IEnumerable
dirs = Directory.EnumerateDirectories(Path.Combine(MediaPath, "sources"), "??-??"); if (!dirs.Any()) { dirs = Directory.EnumerateDirectories(Path.Combine(MediaPath, "sources"), "*-*"); } string langcode = dirs.First().Replace(Path.Combine(MediaPath, "sources") + Path.DirectorySeparatorChar, ""); foreach (string file in IniReader.SetupFilesToBackport) { string normalizedPath = file.Replace("??-??", langcode); string matchingfile = Path.Combine(MediaPath, normalizedPath); string sourcePath = file == $"sources{Path.DirectorySeparatorChar}background.bmp" ? bgfile : matchingfile; if (File.Exists(sourcePath)) { progressCallback?.Log($"Queueing {normalizedPath}"); updateDirectives.Add((sourcePath, normalizedPath)); } else { progressCallback?.Log($"Skipping missing {normalizedPath}"); } } bool result = Constants.imagingInterface.UpdateFilesInImage(bootwim, 2, updateDirectives, progressCallback: progressCallback?.GetImagingCallback()); File.Delete(winpejpgtmp); return result; }
开发者ID:gus33000,项目名称:UUPMediaCreator,代码行数:60,代码来源:WindowsInstallerBuilder.cs
在IntegrateSetupFilesIntoImage()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例6 - EnumerateFiles()
using System.IO; IEnumerable
EnumerateFiles(string path, string searchPattern, SearchOption searchOpt) { try { var dirFiles = Enumerable.Empty (); if (searchOpt == SearchOption.AllDirectories && IsFolderValid(path)) { dirFiles = Directory.EnumerateDirectories(path) .SelectMany(x => EnumerateFiles(x, searchPattern, searchOpt) .Where(fi => EndsWithExtension(fi) && IsFolderValid(fi)) ); } return dirFiles.Concat(Directory.EnumerateFiles(path, searchPattern).Where(fi => EndsWithExtension(fi))); } catch (UnauthorizedAccessException ex) { return Enumerable.Empty (); } catch (PathTooLongException ex) { // Microsoft solution: https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-enumerate-directories-and-files Console.WriteLine("[!] {0} is too long. Continuing with next directory.", path); return Enumerable.Empty (); } catch (System.IO.IOException ex) { return Enumerable.Empty (); } }
开发者ID:vivami,项目名称:SauronEye,代码行数:27,代码来源:Searcher.cs
在EnumerateFiles()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例7 - Parse()
using System.IO; ///
/// Parse plugin metadata in the given directories /// /// ///public static List Parse(string[] pluginDirectories) { var allPluginMetadata = new List (); var directories = pluginDirectories.SelectMany(Directory.EnumerateDirectories); // todo use linq when diable plugin is implmented since parallel.foreach + list is not thread saft foreach (var directory in directories) { if (File.Exists(Path.Combine(directory, "NeedDelete.txt"))) { try { Directory.Delete(directory, true); } catch (Exception e) { Log.Exception($"|PluginConfig.ParsePLuginConfigs|Can't delete <{directory}>", e); } } else { PluginMetadata metadata = GetPluginMetadata(directory); if (metadata != null) { allPluginMetadata.Add(metadata); } } } (List uniqueList, List duplicateList) = GetUniqueLatestPluginMetadata(allPluginMetadata); duplicateList .ForEach( x => Log.Warn("PluginConfig", string.Format("Duplicate plugin name: {0}, id: {1}, version: {2} " + "not loaded due to version not the highest of the duplicates", x.Name, x.ID, x.Version), "GetUniqueLatestPluginMetadata")); return uniqueList; }
开发者ID:Flow-Launcher,项目名称:Flow.Launcher,代码行数:47,代码来源:PluginConfig.cs
在Parse()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Directory.EnumerateDirectories的代码示例8 - FromXml()
using System.IO; #endregion #region Methods used to convert to/from XML //===================================================================== ///
/// This is used to load the settings for an assembly location from an XML element /// /// The XML element containing the settings ///The new assembly location item ///If the location element is empty, the assembly details will be created by scanning the /// location for assemblies. internal static AssemblyLocation FromXml(XElement location) { AssemblyLocation al = new AssemblyLocation(location.Attribute("Path").Value); try { if(!Directory.Exists(al.Path)) { string path = IOPath.GetDirectoryName(al.Path); // .NETCore and .NET 5+ folders may not exist if the user hasn't got the version used in the // reflection data set installed. In such cases, use the latest one installed. if(path.EndsWith(@"\ref", StringComparison.OrdinalIgnoreCase)) { path = IOPath.GetDirectoryName(IOPath.GetDirectoryName(path)); var latestVersion = Directory.EnumerateDirectories(path).Select( p => new { Version = IOPath.GetFileName(p), Path = p }).Where(p => Version.TryParse(p.Version, out _)).OrderByDescending(p => p.Version).FirstOrDefault(); if(latestVersion != null) { path = IOPath.Combine(latestVersion.Path, "ref"); if(Directory.Exists(path)) { path = Directory.EnumerateDirectories(path).FirstOrDefault(); if(path != null) al = new AssemblyLocation(path); } } } } } catch(Exception ex) { // Ignore exceptions and just use the path given System.Diagnostics.Debug.WriteLine(ex); } foreach(var a in location.Descendants("AssemblyDetails")) al.assemblyDetails.Add(AssemblyDetails.FromXml(al.Path, a)); return al; }
开发者ID:EWSoftware,项目名称:SHFB,代码行数:59,代码来源:AssemblyLocation.cs
在FromXml()方法中,Directory的代码示例类中的EnumerateDirectories的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的Directory.EnumerateDirectories方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。