C#路径,文件,目录及IO常见操作汇总
本文实例汇总了C#路径,文件,目录及IO常见操作。分享给大家供大家参考。具体如下:
问题1:如何判定一个给定的路径是否有效/合法;
通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以
根据它来判断路径中是否包含非法字符;
问题2:如何确定一个路径字符串是表示目录还是文件;
1、使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件;
2、上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得
其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件;
问题3:如何获得路径的某个特定部分(如文件名、扩展名等);
Path.GetDirectoryName:返回指定路径字符串的目录信息;
Path.GetExtension:返回指定的路径字符串的扩展名;
Path.GetFileName:返回指定路径字符串的文件名和扩展名;
Path.GetFileNameWithoutExtension:返回不具有扩展名的路径字符串的文件名;
Path.GetPathRoot:获取指定路径的根目录信息;
问题4:如何准确地合并两个路径而不用去担心那个烦人的"\"字符;
使用Path.Combine方法,它会帮你处理烦人的"\";
问题5:如何获得系统目录的的路径(如桌面,我的文档,临时文件夹等);
主要是使用System.Environment类的相关属性和方法:
Environment.SystemDirectory属性:获取系统目录的完全限定路径;
Environment.GetFolderPath方法:该方法接受的参数类型为Environment.SpecialFolder枚举,
通过这个方法可以获得大量系统文件夹的路径,如我的电脑,我的电脑,桌面,系统目录等;
Path.GetTempPath方法:返回当前系统的临时文件夹的路径;
问题6:如何判断一个路径是绝对路径还是相对路径;
使用Path.IsPathRooted方法;
问题7:如何读取或设置当前目录;
使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法;
问题8:判断两个文件的内容是否一致
publicstaticboolIsFilesEqual(stringfileName1,stringfileName2) { using(HashAlgorithmhashAlg=HashAlgorithm.Create()) { using(FileStreamfs1=newFileStream(fileName1,FileMode.Open),fs2=newFileStream(fileName2,FileMode.Open)) { byte[]hashBytes1=hashAlg.ComputeHash(fs1); byte[]hashBytes2=hashAlg.ComputeHash(fs2); //比较哈希码 return(BitConverter.ToString(hashBytes1)==BitConverter.ToString(hashBytes2)); } } }
问题9:计算一个目录的大小
privatelongCalculateDirSize(DirectoryInfodi,boolincludeSubDir) { longtotalSize=0; //检查所有(直接)包含的文件 FileInfo[]files=di.GetFiles(); foreach(FileInfofileinfiles) { totalSize+=file.Length; } //检查所有子目录,如果includeSubDir参数为true if(includeSubDir) { DirectoryInfo[]dirs=di.GetDirectories(); foreach(DirectoryInfodirindirs) { totalSize+=CalculateDirSize(dir,includeSubDir); } } returntotalSize; }
希望本文所述对大家的C#程序设计有所帮助。