C# 判断文件是否为空

本文介绍了两种检查文件是否为空的方法:一是通过FileStream和StreamReader读取文件内容并判断;二是直接利用FileInfo获取文件长度进行判断。指出第二种方法更为简便,并强调这两种方法适用于纯文本文件如txt、ini等,而不适用于包含应用格式信息的文件如doc、xls等。
/*  在代码头部引入 System.IO 命名空间 */

  // 第一种方法
  using(FileStream fs=new FileStream(@"C:\a.txt",FileMode.Open){
         using(StreamReader sr=new StreamReader(fs){
            if(sr.ReadToEnd == string.Empty){
                 //为空
             }
         }
  }
  
  //第二种方法
  FileInfo fi=new FileInfo(@"C:\a.txt");
  if(fi.Length==0){
     //为空
  }

相比之下,第二种方法更为简单

2. 这种方法适合纯文本文件,比如 txt ,ini,html,xml等文件,因为它们不包括任何格式信息。它不适合诸如 doc,xls,zip, rar 等文件,因为即使这些文件是新建的空文件,它们也会包括一些应用程序信息或者格式信息。

区分适合不适合的办法是,你打开应用程序(如 Word, Excel),新建一个空文件,看它的大小是否为 0 。


 
### C# 判断 CSV 文件是否 为了判断一个 CSV 文件是否,在 C# 中可以采用多种方法来实现这一功能。一种简单有效的方式是通过读取文件的第一行检查其是否存在内容。 #### 方法一:使用 `StreamReader` 检查首行 这种方法涉及打开文件流,尝试读取第一行数据,基于此决定文件是否: ```csharp using System; using System.IO; public class CsvChecker { public static bool IsCsvEmpty(string filePath) { if (!File.Exists(filePath)) { throw new FileNotFoundException("指定的路径不存在"); } using (var reader = new StreamReader(filePath)) { string firstLine = reader.ReadLine(); return string.IsNullOrWhiteSpace(firstLine); } } } ``` 上述代码定义了一个名为 `IsCsvEmpty` 的静态函数[^1],该函数接收一个字符串参数作为文件路径,返回布尔值表示文件是否。如果文件不存在,则抛出异常;否则,利用 `StreamReader` 类尝试获取文件中的第一行文本。当这行文本为 null 或仅由白字符组成时,即认为文件。 #### 方法二:直接检测文件大小 另一种更快速的方法是在不实际解析文件的情况下查看文件长度。对于大多数情况而言,文件意味着零字节大小: ```csharp using System; using System.IO; public class FileSizeChecker { public static bool IsFileZeroLength(string filePath) { FileInfo fileInfo = new FileInfo(filePath); return fileInfo.Length == 0L; // 如果文件长度等于0则视为文件 } } ``` 这段代码展示了如何创建一个简单的辅助类 `FileSizeChecker` 及其中的一个成员方法 `IsFileZeroLength` 来完成这项工作[^2]。它同样接受一个代表目标文件位置的字符串参数,依据文件的实际尺寸作出相应判断。 这两种方式各有优劣,具体选择取决于应用场景的需求以及性能考量等因素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值