C语言 去掉文件名中不允许的字符



我正在开发一个小应用程序,它接收路径和文件名并相应地创建一个文件。我已经意识到,一些字符是不允许在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);

我希望这是你想要的

最新更新