[英]Avoiding NotSupportedException using CreateDirectory in c#
我试图递归创建一堆目录,并且某些目录名称带有':'字符,并引发上述异常。 我希望有办法避免这种情况? 以下是我使用的代码片段:
foreach (TagLib.File tagFile in tagFiles)
{
GetInfo(tagFile, targetDir);
if (!Directory.Exists(TargetFullPath))
{
Directory.CreateDirectory(TargetFullPath);
System.IO.File.Copy(FilePath, TargetFullPath + "\\" + tagFile.Tag.Title + TargetExt);
} ...
其中'TargetFullPath'=“ G:\\ Users \\ Jon \\ Desktop \\ musictest \\ Journey \\ Journey:Greatest Hits”
非常感谢 :)
冒号是您无法使用的字符之一,但是您可以轻松地替换它。 为了确保只替换文件名部分中的字符(以免擦掉组成文件路径其余部分的反斜杠),可以使用:
Path.Combine(Path.GetDirectoryName(TargetFullPath),Path.GetFileName(TargetFullPath).Replace(":","_"));
假设文件名中可能还有其他非法字符( 请参见此列表 ),那么您将需要更强大的功能,例如Regex语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.