3

を介してユーザーからパスを受け取るWinFormsアプリケーションを構築していますSaveFileDialog

これが私のコードの関連部分です。パスpcapFileが有効で存在するかどうかを確認するにはどうすればよいですか?

private void btnBrowse_Click(object sender, EventArgs e)
{
    SaveFileDialog saveFileDialogBrowse = new SaveFileDialog();
    saveFileDialogBrowse.Filter = "Pcap file|*.pcap";
    saveFileDialogBrowse.Title = "Save an pcap File";
    saveFileDialogBrowse.ShowDialog();
    pcapFile = saveFileDialogBrowse.FileName; //do whatever you like with the selected filename

    if (pcapFile != "")
    {
        FileInfo fileInfo = new FileInfo(pcapFile);
        tbOutputFileName.Text = fileInfo.FullName;
    }
}
4

3 に答える 3

9

File.Existsメソッドを使用してください。例外はスローされません。MSDNから:

呼び出し元に必要な権限があり、パスに既存のファイルの名前が含まれている場合はtrue 。それ以外の場合はfalse。このメソッドは、パスnull、無効なパス、または長さがゼロの文字列の場合にもfalseを返します。呼び出し元に指定されたファイルを読み取るための十分な権限がない場合、例外はスローされず、パスの存在に関係なく、メソッドはfalseを返します。

于 2012-12-04T17:49:56.600 に答える
4

FileInfo提供されたパスの形式が正しくない場合、例外がスローされます。そのファイルがすでに存在するかどうかを知りたい場合は、FileInfo.Existsプロパティを確認してください。

于 2012-12-04T17:50:06.340 に答える
0

FileInfoコンストラクターを使用します。

ArgumentExceptionファイル名が空の場合、空白のみが含まれている場合、または無効な文字が含まれている場合は、がスローされます。また、SecurityExceptionをスローする可能性があります

またはPath.GetInvalidPathCharsメソッドを使用します

パス名で許可されていない文字を含む配列を取得します。

//無効なファイル文字のリストを取得します。

char[] invalidFileChars = Path.GetInvalidFileNameChars();
于 2012-12-04T17:53:55.130 に答える