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

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;
    }
}
3个回答

9
请使用File.Exists方法。它不会抛出异常。从MSDN上看到:

true表示调用程序具有所需的权限并且path包含一个现有文件的名称;否则为false。如果pathnull、无效路径或零长度字符串,则此方法也返回false。如果调用程序没有足够的权限读取指定的文件,则不会引发异常,并且该方法返回false,而与path的存在与否无关。


4

FileInfo会在提供的路径格式错误时抛出异常。如果您想知道该文件是否已存在,请检查FileInfo.Exists属性。


0

使用 FileInfo 构造函数。

如果文件名为空、只包含空格或包含无效字符,则会抛出 ArgumentException 异常。它还可能抛出 SecurityException 异常。

或者使用 Path.GetInvalidPathChars 方法。

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

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

char[] invalidFileChars = Path.GetInvalidFileNameChars();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接