无效的文件名检查

本文关键字:检查 文件名 无效 | 更新日期: 2023-09-27 18:29:19

我有一个string,它存储文件名并在SaveFileDialog中使用。在将文件名分配给SaveFileDialogFileName属性之前,我需要确保文件名是有效的(例如,不包含斜杠)。我的问题是:在分配文件名之前,有没有一种快速的方法可以确保文件名有效?

示例:

string fileName = fileNameTextBox.Text;
//Some code here to check validity of fileName
if(fileNameIsValid)
{
  saveFileDialog.FileName = fileName;
}

无效的文件名检查

这个问题以前被问过很多次,正如之前多次指出的那样,IO.Path.GetInvalidFileNameChars是不够的。

首先,有许多像PRN和CON这样的名称是保留的,不允许用于文件名。只有在根文件夹中才允许使用其他名称。以句点结尾的名称也是不允许的。

其次,存在各种长度限制。请在此处阅读NTFS的完整列表。

第三,您可以连接到具有其他限制的文件系统。例如,ISO 9660文件名不能以"-"开头,但可以包含它

查找文件名是否无效的唯一方法是尝试保存它并查看它是否引发异常。