首页 > 编程 > C# > 正文

C#路径,文件,目录及IO常见操作汇总

2019-10-29 21:38:14
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了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:判断两个文件的内容是否一致

 

 
  1. public static bool IsFilesEqual(string fileName1, string fileName2) 
  2. using (HashAlgorithm hashAlg = HashAlgorithm.Create()) 
  3. using (FileStream fs1 = new FileStream(fileName1, FileMode.Open), fs2 = new FileStream(fileName2, FileMode.Open)) 
  4. byte[] hashBytes1 = hashAlg.ComputeHash(fs1); 
  5. byte[] hashBytes2 = hashAlg.ComputeHash(fs2); 
  6. // 比较哈希码 
  7. return (BitConverter.ToString(hashBytes1) == BitConverter.ToString(hashBytes2)); 

问题9:计算一个目录的大小

 

 
  1. private long CalculateDirSize(DirectoryInfo di, bool includeSubDir) 
  2. long totalSize = 0; 
  3. // 检查所有(直接)包含的文件 
  4. FileInfo[] files = di.GetFiles(); 
  5. foreach (FileInfo file in files) 
  6. totalSize += file.Length; 
  7. // 检查所有子目录,如果includeSubDir参数为true 
  8. if (includeSubDir) 
  9. DirectoryInfo[] dirs = di.GetDirectories(); 
  10. foreach (DirectoryInfo dir in dirs) 
  11. totalSize += CalculateDirSize(dir, includeSubDir); 
  12. return totalSize; 

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表