字符“:”(冒号)作为文件名的一部分是不合法的.它将其解释为路径分隔符,因此当您仅请求文件名时,它将删除它以及它之前的所有内容.
这是检查文件名是否有效的一种方法:
对于有效的文件名,此函数将返回true;对于无效的文件名,将返回false:
private bool IsValidFilename(string filename)
{
//
//-- Get array with invalid chars for filenames
//
char[] illegalChars = Path.GetInvalidFileNameChars;
//
//-- Go through each char in filename and check if the char is
// in our array of invalid chars
//
foreach (char c in filename) {
if (illegalChars.Contains(c))
return false;
}
//
//-- All are valid, return true
//
return true;
}
如果以上函数返回false,则可以使用下一个函数格式化文件名并删除非法的字符(存在用于执行此IIRC的os函数,但这是手动进行的简单练习):
private string MakeFilenameValid(string filename, char replacment)
{
//
//-- Get array wi