私はオートアップデートC#プログラムを持っています。いくつかのソフトウェアのアップデートのために変更されたファイルや新しいファイルを保持するrarファイルをダウンロードします。 rarファイルには、ソフトウェアの基本ディレクトリと同じ構造がありますが、変更または新しいファイル/フォルダのみが含まれています。これらのファイル/フォルダを目的のディレクトリに "マージ"する簡単な方法はありますか?ファイル/フォルダがすでに存在する場合はそれが置き換えられますが、そうでなければ追加されるか、手動で各ファイルを処理する必要があります/フォルダと自分でこれを行うには?ただ、.NETが持っている:)C#で別のディレクトリとマージ
答えて
を次の例では、ディレクトリとその内容をコピーする方法を示しちょっといいマージ機能があることを望ん。
public static void CopyAll(DirectoryInfo source, DirectoryInfo target) { if (source.FullName.ToLower() == target.FullName.ToLower()) { return; } // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) { Directory.CreateDirectory(target.FullName); } // Copy each file into it's new directory. foreach (FileInfo fi in source.GetFiles()) { Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name); fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); } // Copy each subdirectory using recursion. foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) { DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name); CopyAll(diSourceSubDir, nextTargetSubDir); } }
最も簡単な方法はFileSystem.MoveDirectory方法を使用することです。あなたはMicrosoft.VisualBasic.dll
への参照を追加していることを確認してください:
using Microsoft.VisualBasic.FileIO;
...
// Merge D:\SourceDir with D:\DestDir:
FileSystem.MoveDirectory("D:\\SourceDir", "D:\\DestDir", true /* Overwrite */);
質問は、この場合MoveDirectoryの作業ディレクトリディレクトリとソースディレクトリをマージすることですか?私は、MoveDirectoryは宛先に新しいディレクトリを作成する傾向があり、ディレクトリがすでに存在する場合、「そのファイルがすでに存在するときにファイルを作成できません」というエラーを発生させると考えています。 – kaushalparik27
あなたが試してみるとなぜ信じるのですか?それはディレクトリをマージするので、すべてのコンテンツを結合した単一のDestDirになります。 – Yarik
- 1. ディレクトリの移動とマージ
- 2. CとC++のunixディレクトリとファイルを区別する
- 3. 別のディレクトリから(Linuxの下で)別のディレクトリからC++プログラムを起動
- 4. C++別のディレクトリに.txtファイルを開く
- 5. のC#DataTableのマージと値
- 6. C#:ソートとベクトルのマージ
- 7. Win32のC++ dllとマネージC++ dllのマージ
- 8. C++ヘッダーファイル - 1つのディレクトリに置くか、ツリー構造でマージしますか?
- 9. Cでのテキストファイルのマージ
- 10. C++で別のディレクトリからファイルを開く方法は?
- 11. C#2個のコレクションの別個のアイテムをマージする
- 12. 特別なマージR
- 13. 他のファイルとは別のディレクトリ
- 14. javaの - 別のディレクトリ
- 15. git 2つの異なるリポジトリと同じディレクトリをマージする
- 16. 任意のディレクトリを別のディレクトリにリダイレクト
- 17. ファイルのバージョン別にTFSマージ
- 18. 別のフォークをマージする
- 19. マージ結果-c
- 20. C#.NetでWindows7のCディレクトリにディレクトリを作成するには
- 21. 別のディレクトリにリダイレクト
- 22. 別のディレクトリレベルでgitリポジトリをマージする
- 23. 別の$ http.get()/角で$ http.get()をマージ
- 24. main.jsとは別のディレクトリにあるapp.yaml?
- 25. Cでソートバグをマージする
- 26. C#cosmosファイルIOとディレクトリ
- 27. Cディレクトリとサブディレクトリ再帰
- 28. ファイルとディレクトリを区別して区別できますか?
- 29. C#Windowsのディレクトリ
- 30. C++の別のディレクトリからコマンドラインツールを実行するには
私は1つを自分で書くとき、あなたのポストが私に示されていない理由を疑問に思います? –
@FelixK。私は答えを掲示し、それは正しいものではないと思った、それを削除し、削除され、削除されていない間に編集されました。率直なことに、一般的な習慣。 – GSerg
こんにちは、あなたが仲間をありがとう –