2016-08-09 15 views
3

ファイルをロードして処理した後にファイルを移動しようとしています...移動するファイル部分を個別にテストすると機能しますが、一度にすべて実行すると機能しません。ファイルを移動するJavaで動作していません

ベローはうまく動作しますが、ディレクトリも移動しますが、ファイルだけを移動したいだけです。

public class moveFiles { 

    public static void main(String[] args) { 
     String getFilesFrom = "D:\\show\\from"; 
     String destDir = "D:\\show\\to\\"; 

     File srcFile = new File(getFilesFrom); 

     srcFile.renameTo(new File(destDir, srcFile.getName())); 

    } 

} 

可動部分が動作していないコードは蛇腹です。

for (File child : file.listFiles()) { 
    if(extensionFilter.accept(child)) { 
     fr = new FileReader(child); 
     cm.copyIn("COPY ct"+addExtraZero+month+" FROM STDIN WITH DELIMITER ',' csv", fr); 
    } else { 
     System.out.println("No File is elgible to be loaded"); 
     break; 
    } 
    getNumberOfFilesProcessed++; 
    System.out.println("Loading now " + child.getName()); 
    child.renameTo(new File(moveFilesTo, child.getName())); 
} 
System.out.println("Number of files Loaded is: " + getNumberOfFilesProcessed); 

上記のコードは次のとおりです。

  • 、ソースディレクトリからファイルを取得するには、
  • 印刷ファイルは、それがファイルの
  • GET数は
  • をロードロードその名前、それをデータベースにロードされました

上記のすべてが動作しますが、最後の部分はchは、ロードが動作していない場合にファイルを別のディレクトリに移動することです。ファイルのループを移動すると仮定するファイルのセクションです。

child.renameTo(new File(moveFilesTo, child.getName())); 

私の頭を2時間掻いても助けになるでしょう。 description of File.renameTo()から

+0

なぜあなたはそこに 'break;'を持っていますか?あなたが '続ける 'ことを望むことは可能でしょうか? – megaflop

+0

こんにちは、ファイルがフィルタに一致しないかどうかを確認するextensionFilterがあるので、コードを破る必要があります... – hi4ppl

+0

フィルタに一致しない単一のファイル見つかった?現在、リスト内の最初のファイルがフィルタと一致しない場合、ループ全体が停止し、他のファイルは処理されません。 – megaflop

答えて

1

(強調鉱山):名前の変更操作を別の ファイルシステムからファイルを移動することができない場合があります

、それはアトミックではないかもしれない、とファイルならば、それは が成功しない場合があります宛先抽象パス名はすでに が存在します。これは、より多くのオプションを持っているとして(File.toPath()を使用して)、

if(!child.renameTo(new File(moveFilesTo, child.getName()))) 
    System.out.println("Could not move file"); 

またはmove(Path, Path, CopyOption...)方法を使用してみてください:戻り値は常に 名前変更操作が成功

追加したことを確認するためにをチェックする必要があります。

+0

このメッセージが表示されています(ファイルを移動できませんでした)...しかし、これは最初のサンプルコードでどのように動作しますか...同じファイルシステムだけです。ディレクトリは異なります...唯一の違いはループです.. – hi4ppl

+0

ファイルは既に存在しますか? – Drgabble

+0

宛先は完全に空ではありません... – hi4ppl

関連する問題