私は多くのフォルダを持つディレクトリを持っています。名前は常に昇順の数字です。例ディレクトリ内の最後のディレクトリを名前で注文する
:c:\folders\
は最後のフォルダ()を取得するために内部で彼らが想定ので
1
2
3
4
5
6
7
、私はこれを行うだろう:
string[] folders = Directory.GetDirectories("c:\folders\", "*",
SearchOption.AllDirectories)
そして、文字列の最後の要素を取ります。
しかし、このディレクトリには5000以上のフォルダがあるため、getdirectoriesは実行に約1分かかります。私はこれをやっているのはなぜ
:
私はソースディレクトリとターゲットディレクトリを持っています。私はすべての新しいフォルダとその内容をソースからターゲットにコピーしています(はい、バックアップ)。
string[] directories = Directory.GetDirectories(source, "*",
SearchOption.AllDirectories);
foreach (string dirPath in directories)
Directory.CreateDirectory(dirPath.Replace(source, target));
foreach (string newPath in Directory.GetFiles(source, "*.*",
SearchOption.AllDirectories))
{
if (!File.Exists(newPath.Replace(source, target)) && !newPath.Contains("\\Temp\\"))
{
File.Copy(newPath, newPath.Replace(source, target), false);
}
}
私は最後のフォルダを取得した後、私はディレクトリを作成し、ソースディレクトリにそれの後に来るだけで、フォルダ内のファイルをコピーする必要があります:
これは私のコードは、現在何をするかです。
どのようにして最高の名前(番号)のフォルダをより迅速に取得できますか?私は、最後に挿入されたフォルダを追跡するためにTXTファイルを作成することができましたが、変更可能な余分なファイルを持っている素晴らしいテクニックではありません。
ああ、ソースには、たとえばのような文字のフォルダがいくつか含まれています。などです。私はそれらのフォルダを無視し、番号のみの名前を持つものだけを取得したいと思います。
質問が多すぎますが、私は誰にも仕事を依頼しているわけではありません。アイデアがほしいと思っています。
列挙ディレクトリは.NET 4.0のみです。私は2.0を使用していることを忘れた – Phiter
ああ、確かに物事を変更します:) – KSib
私は今朝のいくつかの重い研究を行い、依然として希望の結果を得ることができませんでした。 – Phiter