0

というフォルダーが 1 つありますOLD。その中に次のようなディレクトリ構造があります。

Old  
---DSL  
---------CI  
------------AppFolder1    
------------AppFolder2  
---------------------------FUN2    
--------CA  
------------AppFolder1  

各フォルダ内には、ファイルがある場合とない場合があります。

という名前のフォルダーが 1 つあります。このフォルダーNEWには更新が含まれており、変更に応じて適切なディレクトリ構造がその中にあります。と同じになるのがポイントですOLD。例えば:

NEW  
---DSL  
---------CI  
------------AppFolder2  
---------------------------FUN2  
--------CA    

ご覧のとおり、ディレクトリ構造 (フォルダー名を含む) は同じです。内のすべてのファイルを 内のNEW適切なファイルに置き換えますOLD

その出発点を教えてください。

4

2 に答える 2

1

Old次の構造のフォルダーを作成しました。

C:\Oldたとえば、古いルート。

-Old
--CI
---AppFolder1
---AppFolder2

そして、Newそれには何もありませんでした。

NewRoot次に、に設定して作成したコンソールアプリを実行し、C:\New次を取得しました。

-New
--CI
---AppFolder1
---AppFolder2

これがあなたが探していたものであるかどうかはわかりません-そうでない場合は、別の方法でやりたいことをアドバイスしてください:)

private static void SyncDirectories(string oldRoot, string newRoot)
{
  CreateDirectoriesRecursive(Directory.GetDirectories(oldRoot), newRoot);
}
private static void CreateDirectoriesRecursive(string[] oldDirectories, string root)
{
  foreach (string oldDirectory in oldDirectories)
  {
    string directoryToCreate = root + @"\" + new DirectoryInfo(oldDirectory).Name;
    if (!Directory.Exists(directoryToCreate))
      Directory.CreateDirectory(directoryToCreate);
    if (Directory.GetDirectories(oldDirectory).Count() > 0)
      CreateDirectoriesRecursive(Directory.GetDirectories(oldDirectory), directoryToCreate);
  }
}
于 2012-08-30T08:54:23.117 に答える
0

FileSystemWatcherクラスを使用して、OLDディレクトリの変更を制御し、それらを新しいディレクトリに繰り返すことができます。

また、この時計をNEWに配置して、不要なアクセスを管理することもできます。

于 2012-08-30T08:45:25.000 に答える