标签: c#
我有string存储文件名并在SaveFileDialog中使用。在将文件名分配给FileName的{{1}}属性之前,我需要确保文件名有效(例如,不包含斜杠)。我的问题是:在分配文件名之前有没有快速确保文件名有效的方法?
string
SaveFileDialog
FileName
示例:
答案 0 :(得分:5)
这个问题一直是asked many times before,并且如前所述多次提及IO.Path.GetInvalidFileNameChars是不够的。
IO.Path.GetInvalidFileNameChars
首先,有许多名称,如PRN和CON,这些名称是保留的,不允许用于文件名。还有其他名称不允许仅在根文件夹中。也不允许以句点结尾的名称。
其次,存在各种长度限制。阅读NTFS here的完整列表。
第三,您可以附加到具有其他限制的文件系统。例如,ISO 9660文件名不能以“ - ”开头,但可以包含它。
查找文件名无效的唯一方法是尝试保存文件名并查看是否会引发异常。