Tar*_*ion 3 c# string replace char
给定一个字符串和一组字符:
string userDir = WindowsIdentity.GetCurrent().Name;
char[] chars Path.GetInvalidPathChars();
Run Code Online (Sandbox Code Playgroud)
如果要替换"userDir"字符串中"chars"中的所有字符,则使用用户名创建有效的目录名称.或者我可以假设每个用户名都是有效的目录吗?
我最好的想法是嵌套两个循环...但我正在寻找一个更短的解决方案.
或者是否有另一种方法来生成有效的目录名称?
假设您的代码:
string userDir = WindowsIdentity.GetCurrent().Name;
char[] chars = Path.GetInvalidPathChars();
Run Code Online (Sandbox Code Playgroud)
你可以随时做:
Array.ForEach(chars, c => userDir = userDir.Replace(c, '_'));
Run Code Online (Sandbox Code Playgroud)
用下划线(或任何你想要的中性字符)替换任何无效的字符.
更新:正如Steve Fallows指出的那样,\并且:是有效的路径字符,但不是有效的文件夹名称字符.相反,我们应该使用该Path.GetInvalidFileNameChars()方法:
char[] chars = Path.GetInvalidFileNameChars();
Run Code Online (Sandbox Code Playgroud)
然后继续像以前一样.