C# でファイルが空かどうかを確認する
この投稿では、C# でファイルが空かどうかを確認する方法について説明します。
の戻り値を使用して、ファイルが空であるかどうかを判断できます。 FileInfo.Length 財産。 The FileInfo.Length
プロパティは、現在のファイルのサイズをバイト単位で返します。指定されたファイルが空の場合、0 バイトが返されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\data.txt"; var f = new FileInfo(path); if (f.Length == 0) { Console.WriteLine("The file {0} is empty", f.Name); } else { Console.WriteLine("The file {0} is not empty", f.Name); } } } |
指定したファイルが存在しない場合、 System.IO.FileNotFoundException
上げられます。を使用して、ファイルを操作する前にファイルが存在するかどうかを確認することで、例外を回避できます。 FileInfo.Exists
財産。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\data.txt"; var f = new FileInfo(path); if (!f.Exists) { Console.WriteLine("The file {0} does not exist", f.Name); } else if (f.Length == 0) { Console.WriteLine("The file {0} is empty", f.Name); } else { Console.WriteLine("The file {0} is not empty", f.Name); } } } |
に注意してください FileInfo.Length
メソッドは、ファイルにバイト オーダー マーク (BOM) 文字のみが残っている場合にゼロ以外の長さを返すことがあります。後で非決定論的な動作のリスクを回避するために、後続の検証を追加することをお勧めします。アイデアは、を使用してファイルの内容を文字列に読み取ることです。 File.ReadAllText()
メソッドと文字列の長さを確認します。以来、 File.ReadAllText()
メソッドはファイル内のすべてのテキストを文字列に読み取ります。このメソッドは、 FileInfo.Length
資産は一桁です。次の例で説明します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.IO; public class Example { public static bool IsFileEmpty(string fileName) { var f = new FileInfo(fileName); return f.Length == 0 || f.Length < 10 && File.ReadAllText(fileName).Length == 0; } public static void Main() { string path = @"\data.txt"; if (IsFileEmpty(path)) { Console.WriteLine("The file is empty"); } else { Console.WriteLine("The file is not empty"); } } } |
C# でファイルが空かどうかを確認するのはこれですべてです。
こちらも参照: