首页 > 解决方案 > 如何检查文本文件是否为空c#

问题描述

如何编写 if 语句来检查我的文本文件是否为空?

下面的 if 语句不适用于我的文本文件,因为我的文件大小不为零,即使它看起来是空的,因为文本文件的编码类型是带有 BOM 的 UTF-8,所以它的大小是 3 个字节:

if (new FileInfo("file").Length == 0)
{
  //Is empty
}

标签: c#if-statement

解决方案


似乎您想检查长度为 0的文件长度为 3 的文件仅包含 UTF-8 BOM:

long fileLen = new FileInfo("file").Length;
if (fileLen == 0 || (fileLen == 3 && File.ReadAllBytes("file").SequenceEqual(new byte[] { 239, 187, 191 }))) {
    /* Is empty */
}

推荐阅读