指定した拡張子を持つファイルをコピーする目的で、C# 2010 を使用してアプリケーションを作成しています。.NET Framework 3.5 を使用します。
次のコードがあります。
private void GetFiles()
{
bool validext;
foreach (string filePath in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories))
{
//Check if the file has a specified extension
validext = false;
foreach (string extension in ext)
if (HasExtension(filePath, extension))
{
validext = true;
break;
}
if ((validext && mode == 1) || (!validext && mode == 2))
{
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
to_copy.Add(filePath);
}
}
totalcount = to_copy.Count;
}
問題は次のコマンドにあります。
Directory.CreateDirectory(TrimFile(filePath));
例外は発生しません。作成する必要があるディレクトリ パスは有効であり、アプリケーションは管理者権限で実行されます。それでも、ディレクトリは作成されません。インターネットで検索しても答えが得られなかったので、私の質問は次のとおりです。
なぜ機能しないのDirectory.CreateDirectory(TrimFile(filePath));
ですか?
編集: FileTrim 関数を に置き換えましたPath.GetDirectoryName(filePath)
。