通过C#确定文件路径是否有效且存在

时间:2012-12-04 17:48:26

标签: c# winforms validation path

我正在构建一个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;
    }
}

3 个答案:

答案 0 :(得分:8)

请使用File.Exists方法。它不会抛出异常。来自MSDN:

  

true 如果调用者具有所需权限,路径包含现有文件的名称;否则, false 。如果 path null ,无效路径或零长度字符串,此方法也会返回 false 。如果调用者没有足够的权限来读取指定的文件,则不会抛出任何异常,并且无论是否存在 path ,该方法都会返回 false

答案 1 :(得分:3)

如果提供给它的路径格式不正确,

FileInfo将抛出异常。如果您想知道该文件是否已存在,请检查FileInfo.Exists属性。

答案 2 :(得分:0)

使用FileInfo构造函数。

  

如果文件名为空,它将抛出ArgumentException,   仅包含空格或包含无效字符。它可以   也抛出SecurityException

或使用Path.GetInvalidPathChars方法

  

它获取一个包含路径中不允许的字符的数组   名。

//获取无效文件字符列表。

char[] invalidFileChars = Path.GetInvalidFileNameChars();