我正在开发一个小应用程序,它接收路径和文件名并相应地创建一个文件。我已经意识到,一些字符是不允许在winapi文件名(例如冒号,点等)。因此,当我从客户端收到文件名时,我想尽快摆脱它们。我想知道是否有一个c函数可以帮我做到这一点。到目前为止,互联网上什么也没发现。提前感谢!
不同的文件系统对于哪些字符有效哪些字符无效有不同的规则。这就是为什么没有一个通解。
最好的选择是尝试创建文件,如果失败,拒绝它。
否则你将需要研究所有的限制,并手工编写一个:
- 通用Windows命名限制
- FAT与NTFS
您可以执行foreach循环并检查它是否包含不允许的字符,然后将其替换为其他字符。您可以使用。substring (number, number)。
我很抱歉没有给你一个实际的代码片段,但我现在不在我的电脑上
您可以在http://msdn.microsoft.com/en-us/library/system.string.substring.aspx
查找。子字符串。希望有帮助!
我发现replace方法和contains方法工作正常,下面的代码
string someword = "Thisisastring...";
someword = someword.ToLower();
Console.WriteLine(someword);
if (someword.Contains("."))
{
someword = someword.Replace(".", "(dot)").ToString();
}
if (someword.Contains("t"))
{
someword = someword.Replace("t", "tee").ToString();
}
Console.WriteLine(someword);
我希望这是你想要的