1

一連のディレクトリを再帰的に作成しようとしていますが、特定のディレクトリ名に「:」文字が含まれているため、上記の例外がスローされます。これを回避する方法があるのではないかと期待していましたか?以下は、私が使用しているコードの一部です。

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"

どうもありがとう :)

4

1 に答える 1

1

コロンは、使用できない文字の1つですが、簡単に置き換えることができます。また、ファイル名の部分の文字のみを置き換えるようにするには(ファイルパスの残りの部分を構成する円記号を消去しないようにするため)、次を使用できます。

Path.Combine(Path.GetDirectoryName(TargetFullPath),Path.GetFileName(TargetFullPath).Replace(":","_"));

ファイル名に他の不正な文字が含まれている可能性があると仮定すると(このリストを参照)、正規表現ステートメントのようなより堅牢なものが必要になります。

于 2011-09-14T23:45:31.917 に答える