2016-10-12 8 views
0

あるフォルダから別のフォルダに名前に応じてファイルを移動したいと思います。 私が達成したいのは、これらの特定のファイルをエクスポートフォルダから選択し、それらを目的のフォルダに置き換えることだけです。そして、あて先フォルダ内のアイテムはキーなので、これらのアイテムだけが必要です。または、ファイルがすでにデスティネーションに存在する場合は、置き換えてください。C#で名前に応じてファイルを移動して置き換えます

private static void CopyPaste() 
{ 
    var pstFileFolder = "C:/Users/chnikos/Desktop/CopyFolderTest/"; 
    var searchPattern = "*.docx"; 
    var soruceFolder= "C:/Users/chnikos/Desktop/CopyFolderTest/Test/"; 

    // Searches the directory for *.pst 
    foreach (var file in Directory.GetFiles(pstFileFolder, searchPattern)) 
    { 
     // Exposes file information like Name 
     var theFileInfo = new FileInfo(file); 
     // Gets the user name based on file name 
     // Sets up the destination location 
     var destination = soruceFolder+ theFileInfo.Name; 
     File.Move(file, destination); 
    } 
} 

ソース先は次のとおりです。soruceFolder起源は次のとおりです。pstFileFolder

は、私が直面している問題は、私は私のコードは、すべてのファイルを取得していないようですコピーされるかを制御することができないということですこれらのファイルは、あなたが、それは以下のようなファイルが含まれてかどうかを確認するために先のフォルダをチェックする必要がsourfolder

+0

このコードで問題が発生したことはありますか?特に。あなたの目標は何であるかは分かりません – Steve

+0

あなたの質問に疑問はありません!あなたは何が問題なのか説明できますか? –

+1

[小さなプログラムをデバッグする方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を読んでみてください。 –

答えて

2

に存在するかどうかのチェック:

private static void CopyPaste() 
{ 
var pstFileFolder = "C:/Users/chnikos/Desktop/CopyFolderTest/"; 
var searchPattern = "*.docx"; 
var soruceFolder= "C:/Users/chnikos/Desktop/CopyFolderTest/Test/"; 

// Searches the directory for *.pst 
foreach (var file in Directory.GetFiles(pstFileFolder, searchPattern)) 
{ 
    // Exposes file information like Name 
    var theFileInfo = new FileInfo(file); 
    // Gets the user name based on file name 
    // Sets up the destination location 
    var destination = soruceFolder+ theFileInfo.Name; 
    if(File.Exist(destination)) 
    { 
     File.Delete(destination); 
    File.Move(file, destination); 
    } 
} 
} 

コピー先フォルダ内のファイルを削除し、ファイルを移動します。したがって、ファイルがコピー先のフォルダに存在しない場合は、何もしません;

+0

ありがとうallotはうまく動作:) –

関連する問題