2017-04-18 13 views
-3

パスが一致する場合、ある場所から別の場所にファイルをコピーする必要があります。このシナリオ(写真添付)では、Text.txtを含むC:\ OldFiles \ New Folder \というフォルダがあり、Text.txtを含むD:\ NewFiles \ New Folder \という別のフォルダがあります。ルートフォルダとサブフォルダは異なるが、ファイルとそのフォルダの名前はまったく同じであることに注意してください。パスがルートフォルダを無視している場合、ある場所から別の場所にファイルをコピーする必要があります

WindowsフォームC#ツールを開発すると、別のパスの古いファイルを置き換える新しいファイルを含むパスを指し示します。助けてください?私のシナリオを見るにはhereをクリックしてください。

+2

あなたが何をしたいのか述べてきました。あなたの質問は何ですか? "助けてください"あまりにも非特異的です。 – stakx

+0

私の質問は、このアクションを実行する方法です。 – Allan

+0

ルートフォルダを無視してどういう意味ですか? –

答えて

-1
// pass true to replace existing if exists in destination 
File.Copy("source path here", "destination path here", true); 
0
string fileName = "test.txt"; 
      string sourcePath = @"C:\OldFiles\New Folder\"; 
      string targetPath = @"D:\NewFiles\New Folder\ "; 

      // Use Path class to manipulate file and directory paths. 
      string sourceFile = System.IO.Path.Combine(sourcePath, fileName); 
      string destFile = System.IO.Path.Combine(targetPath, fileName); 

      // To copy a folder's contents to a new location: 
      // Create a new target folder, if necessary. 
      if (!System.IO.Directory.Exists(targetPath)) 
      { 
       System.IO.Directory.CreateDirectory(targetPath); 
      } 

      // To copy a file to another location and 
      // overwrite the destination file if it already exists. 
      System.IO.File.Copy(sourceFile, destFile, true); 

      // To copy all the files in one directory to another directory. 
      // Get the files in the source folder. (To recursively iterate through 
      // all subfolders under the current directory, see 
      // "How to: Iterate Through a Directory Tree.") 
      // Note: Check for target path was performed previously 
      //  in this code example. 
      if (System.IO.Directory.Exists(sourcePath)) 
      { 
       string[] files = System.IO.Directory.GetFiles(sourcePath); 

       // Copy the files and overwrite destination files if they already exist. 
       foreach (string s in files) 
       { 
        // Use static Path methods to extract only the file name from the path. 
        fileName = System.IO.Path.GetFileName(s); 
        destFile = System.IO.Path.Combine(targetPath, fileName); 
        System.IO.File.Copy(s, destFile, true); 
       } 
      } 
      else 
      { 
       //"Source path does not exist! 
      } 
0
  string sourcePath = @"C:\OldFiles\NewFolder"; 
      string targetPath = @"D:\NewFiles\NewFolder "; 


      var a = sourcePath.Split('\\'); 
      var b = targetPath.Split('\\'); 
      string a1 = a[a.Length - 2]; //this will return OldFiles 
      string a2 = a[a.Length-1]; //this will return NewFolder 
      string b1 = b[b.Length - 2]; // this will return NewFiles 
      string b2 = b[b.Length-1]; // this will return NewFolder 

      //you get the idea now use what ever you want with it in you if statement 
関連する問題