摆脱文件名中不允许的字符

时间:2014-06-04 13:47:26

标签: c windows file filenames

我正在开发一个小型应用程序,它接收路径和文件名并相应地创建文件。 我已经意识到winapi文件名中不允许使用某些字符(例如冒号,点等)。因此,一旦我从客户端收到文件名,我就想摆脱它们。 我想知道是否有一个c函数可以帮我。到目前为止,互联网没有带来什么。 提前谢谢!

2 个答案:

答案 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);

我希望这是关于你想要的。