六盘水市网站建设_网站建设公司_UX设计_seo优化
2026/1/16 16:18:45 网站建设 项目流程

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;}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询