C#路径,文件,目录及IO常见操作汇总
本文实例汇总了C#路径,文件,目录及IO常见操作。分享给大家供大家参考。具体如下: 问题1:如何判定一个给定的路径是否有效/合法; 通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以 根据它来判断路径中是否包含非法字符; 问题2:如何确定一个路径字符串是表示目录还是文件; 1、使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件; 2、上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得 其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件; 问题3:如何获得路径的某个特定部分(如文件名、扩展名等); Path.GetDirectoryName :返回指定路径字符串的目录信息; 问题4:如何准确地合并两个路径而不用去担心那个烦人的""字符; 使用Path.Combine方法,它会帮你处理烦人的""; 问题5:如何获得系统目录的的路径(如桌面,我的文档,临时文件夹等); 主要是使用System. Environment类的相关属性和方法: 问题6:如何判断一个路径是绝对路径还是相对路径; 使用Path.IsPathRooted方法; 问题7:如何读取或设置当前目录; 使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法; 问题8:判断两个文件的内容是否一致 public static bool IsFilesEqual(string fileName1,string fileName2) { using (HashAlgorithm hashAlg = HashAlgorithm.Create()) { using (FileStream fs1 = new FileStream(fileName1,FileMode.Open),fs2 = new FileStream(fileName2,FileMode.Open)) { byte[] hashBytes1 = hashAlg.ComputeHash(fs1); byte[] hashBytes2 = hashAlg.ComputeHash(fs2); // 比较哈希码 return (BitConverter.ToString(hashBytes1) == BitConverter.ToString(hashBytes2)); } } } 问题9:计算一个目录的大小 private long CalculateDirSize(DirectoryInfo di,bool includeSubDir) { long totalSize = 0; // 检查所有(直接)包含的文件 FileInfo[] files = di.GetFiles(); foreach (FileInfo file in files) { totalSize += file.Length; } // 检查所有子目录,如果includeSubDir参数为true if (includeSubDir) { DirectoryInfo[] dirs = di.GetDirectories(); foreach (DirectoryInfo dir in dirs) { totalSize += CalculateDirSize(dir,includeSubDir); } } return totalSize; } 希望本文所述对大家的C#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |