我正在开发一个小型应用程序,它接收路径和文件名并相应地创建文件。 我已经意识到winapi文件名中不允许使用某些字符(例如冒号,点等)。因此,一旦我从客户端收到文件名,我就想摆脱它们。 我想知道是否有一个c函数可以帮我。到目前为止,互联网没有带来什么。 提前谢谢!
答案 0 :(得分:4)
不同的文件系统对哪些字符有效以及哪些字符无效有不同的规则。这就是没有一般解决方案的原因。
最好的选择是尝试创建文件,如果失败,请拒绝它。
否则你需要研究所有的限制,并手工编写一个代码:
答案 1 :(得分:0)
你可以做一个foreach循环并检查它是否包含一个不允许的字符,然后用其他东西替换它。您可以使用.Substring(数字,数字)。
我很抱歉没有给你一个实际的代码片段,但我现在不在我的电脑上
您可以在http://msdn.microsoft.com/en-us/library/system.string.substring.aspx
查找.Substring希望它有所帮助!
我发现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);
我希望这是关于你想要的。