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

作者:我心依旧 时间:2022-05-03 21:21:13 

本文实例汇总了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:判断两个文件的内容是否一致


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#程序设计有所帮助。

标签:C#,路径,文件,目录,IO
0
投稿

猜你喜欢

  • 基于标准http实现Android多文件上传

    2023-05-28 05:55:28
  • Java基础知识之Java语言概述

    2023-11-28 04:36:35
  • Android自定义UI手势密码改进版源码下载

    2021-11-18 15:30:00
  • 浅谈Spring-cloud 之 sleuth 服务链路跟踪

    2022-09-24 16:07:43
  • 详解Android Scroller与computeScroll的调用机制关系

    2023-09-27 19:49:14
  • Jetpack Compose自定义动画与Animatable详解

    2021-07-04 20:26:08
  • C# PDF转图片(JPG,Png)的项目实践

    2021-11-10 17:59:24
  • C#中的Lazy如何使用详解

    2023-10-25 12:56:34
  • 详解java爬虫jsoup解析多空格class数据

    2021-12-30 14:47:41
  • Bootstrap 下拉菜单.dropdown的具体使用方法

    2023-07-08 19:10:46
  • mybatis createcriteria和or的区别说明

    2021-09-27 09:20:40
  • Spring中SmartLifecycle和Lifecycle的作用和区别

    2023-11-18 22:55:50
  • Flutter应用集成极光推送的实现示例

    2023-06-24 03:51:04
  • Unity调取移动端的麦克风进行录音并播放

    2023-06-04 22:18:05
  • 详解App保活技术实现

    2023-05-24 18:06:26
  • Android MVP模式实战教程

    2023-09-05 13:16:54
  • 浅谈Mybatis分页插件,自定义分页的坑

    2021-12-15 01:28:20
  • Freemarker中的3种循环模式

    2021-11-05 09:47:53
  • 基于C#动手实现网络服务器Web Server

    2023-01-21 20:13:28
  • java音乐播放器实现代码

    2022-08-29 08:41:22
  • asp之家 软件编程 m.aspxhome.com