news 2026/11/2 3:15:16

3.5 Directory

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3.5 Directory

1.Directory常用方法

2.将文件夹A的内容拷贝到文件夹B


1.Directory常用方法

a.Directory.CreateDirectory()作用:创建指定路径的目录,若路径中父目录不存在则自动递归创建(比如创建C:\a\b\c,即使a、a\b不存在,也会一次性 创建)参数:目录的完整路径(string)
// 示例:创建单层/多层目录stringsingleDir=@"C:\test_single_dir";stringmultiDir=@"C:\test_multi_dir\sub1\sub2";// 创建单层目录Directory.CreateDirectory(singleDir);Console.WriteLine($"单层目录{singleDir}创建完成");// 创建多层目录(父目录不存在时自动创建)Directory.CreateDirectory(multiDir);Console.WriteLine($"多层目录{multiDir}创建完成");

b.Directory.Exists()作用:检查指定路径的目录是否存在,返回bool值 参数:目录路径(string)
stringcheckDir=@"C:\test_single_dir";if(Directory.Exists(checkDir)){Console.WriteLine($"目录{checkDir}存在");}else{Console.WriteLine($"目录{checkDir}不存在,即将创建...");Directory.CreateDirectory(checkDir);}

c.Directory.Delete()作用:删除指定目录,支持仅删空目录或递归删除所有子目录/文件 重载:Delete(stringpath):仅删除空目录,目录非空则抛异常Delete(stringpath,boolrecursive):recursive=true时,递归删除目录及所有子目录/文件
stringemptyDir=@"C:\test_single_dir";stringnonEmptyDir=@"C:\test_multi_dir";// 删除空目录if(Directory.Exists(emptyDir)){Directory.Delete(emptyDir);Console.WriteLine($"空目录{emptyDir}已删除");}// 递归删除非空目录(含子目录/文件)if(Directory.Exists(nonEmptyDir)){Directory.Delete(nonEmptyDir,true);Console.WriteLine($"非空目录{nonEmptyDir}已递归删除");}

d.Directory.GetFiles()作用:获取目录下的所有文件,支持指定搜索模式(如*.txt)、是否搜索子目录
stringrootDir=@"C:\test_files_dir";Directory.CreateDirectory(rootDir);// 创建测试文件File.WriteAllText(Path.Combine(rootDir,"file1.txt"),"");File.WriteAllText(Path.Combine(rootDir,"file2.jpg"),"");// 创建子目录并写入文件stringsubDir=Path.Combine(rootDir,"sub");Directory.CreateDirectory(subDir);File.WriteAllText(Path.Combine(subDir,"file3.txt"),"");// 1. 获取根目录下所有文件(仅当前目录)string[]allFiles=Directory.GetFiles(rootDir);Console.WriteLine("根目录下的所有文件:");foreach(varfileinallFiles)Console.WriteLine(file);// 2. 获取根目录下所有.txt文件(仅当前目录)string[]txtFiles=Directory.GetFiles(rootDir,"*.txt");Console.WriteLine("\n根目录下的.txt文件:");foreach(varfileintxtFiles)Console.WriteLine(file);// 3. 递归获取所有.txt文件(含子目录)string[]allTxtFiles=Directory.GetFiles(rootDir,"*.txt",SearchOption.AllDirectories);Console.WriteLine("\n所有目录下的.txt文件(含子目录):");foreach(varfileinallTxtFiles)Console.WriteLine(file);// 清理Directory.Delete(rootDir,true);

e.Directory.GetDirectories()作用:获取目录下的所有子目录路径
stringrootDir=@"C:\test_subdirs\a\b";Directory.CreateDirectory(rootDir);// 获取根目录下的直接子目录string[]subDirs=Directory.GetDirectories(@"C:\test_subdirs");Console.WriteLine("直接子目录:");foreach(vardirinsubDirs)Console.WriteLine(dir);// 清理Directory.Delete(@"C:\test_subdirs",true);

f.枚举目录/文件;EnumerateDirectories()/EnumerateFiles()
stringbigDir=@"C:\test_big_dir";Directory.CreateDirectory(bigDir);// 模拟创建1000个文件for(inti=0;i<1000;i++){File.WriteAllText(Path.Combine(bigDir,$"file{i}.txt"),"");}// 枚举文件(逐个加载,内存占用低)Console.WriteLine("枚举所有.txt文件(前10个):");intcount=0;foreach(varfileinDirectory.EnumerateFiles(bigDir,"*.txt")){if(count<10)Console.WriteLine(file);count++;}// 清理Directory.Delete(bigDir,true);

2.将文件夹A的内容拷贝到文件夹B

publicstaticboolCopyDirectory(stringsourceDir,stringtargetDir,booloverwrite=true,Action<string>onProgress=null){try{varsource=newDirectoryInfo(sourceDir);vartarget=newDirectoryInfo(targetDir);if(!source.Exists)returnfalse;target.Create();// 拷贝文件foreach(FileInfofileinsource.GetFiles()){stringdestPath=Path.Combine(target.FullName,file.Name);onProgress?.Invoke($"拷贝文件:{file.Name}");file.CopyTo(destPath,overwrite);}// 递归子目录foreach(DirectoryInfosubDirinsource.GetDirectories()){stringdestSubDir=Path.Combine(target.FullName,subDir.Name);CopyDirectory(subDir.FullName,destSubDir,overwrite,onProgress);}returntrue;}catch(Exceptionex){onProgress?.Invoke($"错误:{ex.Message}");returnfalse;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 2:42:11

家电业AI营销榜单:原圈科技如何领跑2026年?

原圈科技在AI营销领域,凭借其全链路一体化智慧营销平台,被普遍视为家电零售业的理想选择。该平台整合了深度洞察、AIGC内容、智能交互与转化能力,在多个维度下表现突出,为企业提供从洞察到转化的完整解决方案。引言:风口浪尖上的家电零售业时间来到2026年,家电零售业早已不是蓝…

作者头像 李华
网站建设 2026/11/2 2:43:09

将 Java 代码嵌入 iOS 系统需要特殊的技术方案

将 Java 代码嵌入 iOS 系统需要特殊的技术方案&#xff0c;因为 iOS 原生不支持 Java 运行时环境。以下是几种实现方式及示例&#xff1a;## 1. **J2ObjC&#xff08;Google 官方工具&#xff09;**将 Java 代码转换为 Objective-C&#xff0c;然后集成到 iOS 项目中。### 示例…

作者头像 李华
网站建设 2026/11/2 2:42:29

技术解码:Character.ai 如何实现大模型实时推理性能 2 倍提升

Character.ai 是一家领先的 AI 娱乐平台&#xff0c;全球用户约 2000 万。Character.ai 团队希望提升 GPU 性能&#xff0c;并降低推理成本。其应用需要在大规模场景下保持极低延迟。为实现这一目标&#xff0c;​Character.ai 找到了 DigitalOcean 和 ​AMD​。三方紧密合作&a…

作者头像 李华
网站建设 2026/11/2 2:42:41

第二章第六节 财产清查 知识点总结及真题详解

一、核心知识点总结&#xff08;一&#xff09;财产清查的概念与分类概念&#xff1a;财产清查是对企业各项财产物资、货币资金、往来款项等进行实地盘点或核对&#xff0c;确定其实存数&#xff0c;查明账存数与实存数是否相符的一种专门方法。分类按清查范围&#xff1a;全面…

作者头像 李华
网站建设 2026/11/2 1:28:06

收藏!2026年大模型风口下,程序员的生存与翻盘指南

2026年以来&#xff0c;AI技术赛道从白热化竞争迈入深耕落地阶段&#xff0c;以大模型为核心的“行动智能”浪潮全面席卷行业&#xff0c;正深刻重塑程序员的职业路径与职场格局&#xff1a; 阿里云核心业务线已实现Agent体系与业务场景的深度融合&#xff0c;在金融、政务等领…

作者头像 李华
网站建设 2026/11/1 22:03:22

AI营销内容榜单:原圈科技如何用集成系统应对获客焦虑?

原圈科技在AI营销内容领域被普遍视为领先者,其集成式多智能体系统在榜单中表现突出。该系统通过打通从市场洞察到内容创意的全链路,有效解决了企业在内容生产安全合规、品牌个性传承及营销效果可迭代等方面的核心痛点,为实现可持续的业务增长提供了强大的技术支撑。开篇:请忘掉…

作者头像 李华