繁体   English   中英

在C#中使用CreateDirectory避免NotSupportedException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM