私はLinuxからWindowsにいくつかのコードを移植しようとしています。私は実際にはWindowsについてよく知らないので、私は一種の飛行機である。問題のコードはorg.apache.commons.io.FileUtilsWindowsでこのコードが死んでいるのはなぜですか?
// If the mergesegs worked, delete the segment dirs
for (File file : segments.listFiles())
{
if (!file.equals(mergedSegFile))
{
LOG.debug("deleting segment dir " + file);
FileUtils.deleteDirectory(file);
}
}
segments
を使用して、いくつかのディレクトリを削除しようとするmergedSegFile
があるとして、ファイルです。それはIOException "Unable to delete file: c:\www\tomcat\crawls\test\TestingCode.site\crawldir\segments\20101128194700\parse_test\part-00000\data"
で死ぬ。
これらのファイルは、同じプログラムの以前の実行(Nutchのクロールを実行する)によって作成されたものです。 cygwinの下ls -l
を行うと、ユーザーやグループが正しい示しているが、パーマは000
ですさらに情報:
dir
は私の権限については何も教えてくれありません。- cmd.exeウィンドウで
del
、またはcygwin bashウィンドウでrm -rf
のディレクトリを削除できます。 - 問題のファイルとそのディレクトリは、同じプログラムの同じ実行で以前に作成されたものです。
- コンピュータはWindows 7を実行しているので、NTFSであることを前提としています。
ディレクトリを削除しようとするプログラムが、そのディレクトリまたはファイルを使用している可能性がありますか?ディレクトリを削除するコードを抽出し、そのディレクトリをコマンドライン引数として取り出して削除する小さなテストコードを作成します。それは動作しますか? – khachik
例外のStackTraceでもっと詳しい情報が得られるかもしれませんか? – keuleJ