C# でファイル入出力を処理しているときに、さまざまな例外が発生する可能性がありますが、プログラム内でファイルにアクセスしようとして、そのファイルが存在しないか削除されている場合は、FileNotFoundException が発生します。基本的に、FileNotFound 例外は、システム内にファイルへのアドレスがあるにもかかわらず、プログラムを実行したときに、指定または渡したファイルが見つからない場合に発生します。このファイルが見つからない理由は複数考えられます。ファイルがその場所から削除されたか、ファイル名が変更された可能性があり、記載した名前と一致しません。また、間違ったアドレスを渡し、そのアドレスにヒットしたときにファイルがないため例外が発生する可能性もあります。
構文:
すべてのメソッド、クラス、例外には標準構文があります。
FileNotFound 例外の場合、標準構文は次のとおりです:
public class FileNotFoundException :System.IO.IOException
FileNotFound 例外は IOException の一部であり、SystemException から継承され、Exception および Object クラスに進みます。
言及されている例を以下に示します:
コード:
using System; using System.IO; class Program { static void Main() { try { using (StreamReaderfilereader = new StreamReader("nofile.txt")) { filereader.ReadToEnd(); } } catch (FileNotFoundException ex) { Console.WriteLine(ex); } } }
説明:
出力:
ここでは、上記のコードと同様のコードを実行しますが、try catch ブロックがないため、何が問題になるかを正確に推測できない単純なプログラムになります。
コード:
using System.IO; using System; class Program { static void Main() { using (StreamReaderfilereader = new StreamReader("incorrectfilename.txt")) { filereader.ReadToEnd(); } } }
説明:
出力:
ご覧のとおり、前の例とは異なり、これはハンドルされない例外であり、出力は期待どおりです。
他の例外と同様に、この FileNotFound 例外も回避できます。この例外を回避する方法のうち、File.Exists メソッドをお勧めします。引数に渡しているファイルがソース リンクで利用できないかどうかが不明な場合は、File.Exists メソッドを使用することをお勧めします。 File.Exists メソッドを推奨します。
例:
プログラムで File.Exists メソッドを使用し、さらにどのように使用できるかを見ていきます。
コード:
using System.IO; using System; class Program { static void Main() { bool ifexists = File.Exists("incorrectfilename.txt"); Console.WriteLine("\n "+ifexists); } }
説明:
出力:
結論として、FileNotFound 例外はオブジェクト クラスの IO システム名前空間から発生します。 FileNotFoundException は、ファイルを渡したとき、またはファイルを使用して入出力操作を実行しようとしたときにファイルが存在しないときに発生します。他の理由としては、ファイル名が間違っているか、ソース リンクが間違っていることが考えられます。 File Exists メソッドを使用すると、この例外を回避できます。
以上がC# ファイルが見つかりません例外の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。