Java 为什么这段代码会在Windows上消亡?
我正在尝试将一些代码从Linux移植到Windows。我对窗户真的不太了解,所以我有点盲目。有问题的代码试图使用org.apache.commons.io.FileUtils删除一些目录Java 为什么这段代码会在Windows上消亡?,java,apache-commons,Java,Apache Commons,我正在尝试将一些代码从Linux移植到Windows。我对窗户真的不太了解,所以我有点盲目。有问题的代码试图使用org.apache.commons.io.FileUtils删除一些目录 // If the mergesegs worked, delete the segment dirs for (File file : segments.listFiles()) { if (!file.equals(mergedSegFile)) {
// 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而死亡“无法删除文件:c:\www\tomcat\crawls\test\TestingCode.site\crawdir\segments\20101128194700\parse\u test\part-00000\data”
这些文件是由同一程序的上一次运行创建的(该程序执行一些Nutch爬行)。在cygwin下执行ls-l
,显示用户和组是正确的,但perm是000
进一步资料:
没有告诉我任何有关权限的信息dir
- 我可以在cmd.exe窗口上用
删除目录,或者在cygwin bash窗口上用del
删除目录rm-rf
- 有问题的文件及其所在的目录是在同一程序的同一次运行中创建的
- 这台计算机运行的是Windows7,所以我想这意味着它是NTFS
- 应用程序是否正在使用目录或其任何内容
- 目录或其任何文件是只读的吗?(用
,而不是dir
检查)ls
- 目录或其任何文件是否具有特殊权限,而您不是管理员
- 顺便说一句,我想这是NTFS吧
- 这里有很多可能性。这条路本身看起来不错。最好的方法是尝试从命令提示符手动删除该目录,然后查看您会遇到什么错误
检查事项: