Tag: 无效字符

C#清理文件名

我最近一直在从各个地方把一堆MP3转移到一个存储库。 我一直在使用ID3标签构build新的文件名(谢谢,TagLib-Sharp!),我注意到我得到了一个System.NotSupportedException : “给定path的格式不被支持。” 这是由File.Copy()或Directory.CreateDirectory() 。 认识到我的文件名需要消毒没多久。 所以我做了明显的事情: public static string SanitizePath_(string path, char replaceChar) { string dir = Path.GetDirectoryName(path); foreach (char c in Path.GetInvalidPathChars()) dir = dir.Replace(c, replaceChar); string name = Path.GetFileName(path); foreach (char c in Path.GetInvalidFileNameChars()) name = name.Replace(c, replaceChar); return dir + name; } 令我惊讶的是,我仍然得到例外。 事实certificate,':'不在Path.GetInvalidPathChars()的集合中,因为它在path根中是有效的。 我想这是有道理的 – 但这是一个相当普遍的问题。 有没有人有一些短码清理path? 我已经提出了最彻底的,但它感觉可能是矫枉过正。 // […]