0

我有一个string存储文件名并在SaveFileDialog. 在将文件名分配FileNameSaveFileDialog. 我的问题是:有没有一种快速的方法来确保文件名在分配之前是有效的?

例子:

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

1 回答 1

6

这个问题之前已经被问过 很多 次了,正如 之前多次指出的那样,这个问题IO.Path.GetInvalidFileNameChars是不充分的。

首先,有许多名称(例如 PRN 和 CON)是保留的并且不允许用于文件名。还有其他名称不允许仅在根文件夹中。也不允许使用以句点结尾的名称。

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

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

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

于 2013-08-28T17:51:08.310 回答