1

バッチ ファイルをウィンドウ サービスとして使用して jar を実行し、xml ファイルをc:/processed ディレクトリに配置します。

xml にエラーのある形式がある場合は、それをエラー フォルダーに移動します。以下の方法を使用してファイルをエラーフォルダーに移動していますが、例外を下回っています。

プロセスが実行されているときに、ファイルをエラーフォルダーに移動できないと思います。

FileUtils.moveToDirectory("a.xml", "c:/processed/error", false);

movedErrorFolder の例外: 'c:/processed/error/a.xml' にコピーした後、元のファイル 'c:/processed/a.xml' を削除できませんでした

4

7 に答える 7

5
  1. Java プロセスにはファイルを削除する権限はありませんが、書き込みができる場合は削除できます。
  2. ファイルは別のプロセスによってロックされています。これは通常、Excel で開く csv を書き込むときに発生します。
  3. ファイルは Java プロセスによってロックされており、移動する前にファイルを close() します。
于 2013-04-19T12:58:53.617 に答える
0

ディレクトリ内のファイルを読み取りまたは書き込み用に開いていて.close();、親ディレクトリを削除する前に呼び出しを行っていないかどうかを確認してください。

于 2015-01-04T04:17:35.603 に答える
0

Apacheからこの方法を試していただけますか:

void org.apache.commons.io.FileUtils.moveFileToDirectory(File srcFile, File destDir, boolean createDestDir)

例えば

このインポートを使用します

     import org.apache.commons.io.FileUtils;

コードは次のようになります。

  FileUtils.moveFileToDirectory(new File("c:/processed/a.xml"), new File("c:/processed/error"), false);
于 2015-01-04T05:02:47.583 に答える
0

詳細を示す別の例外は、おそらく原因プロパティによって保持されている例外にネストされています

于 2013-04-19T13:13:16.753 に答える