电脑屏幕显示不全最左边看不到关机键
2026/1/16 19:07:59
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);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;}}