Почему этот код умирает в Windows?

Я пытаюсь перенести какой-то код из Linux в Windows. Я действительно не очень разбираюсь в Windows, поэтому я как бы слепой. Рассматриваемый код пытается удалить некоторые каталоги с помощью org.apache.commons.io.FileUtils

  // 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);
        }
    }

сегментов является файлом, как и mergedSegFile . Он умирает с IOException «Невозможно удалить файл: c: \ www \ tomcat \ crawls \ test \ TestingCode.site \ crawldir \ segment \ 20101128194700 \ parse_test \ part-00000 \ data» .

Эти файлы были созданы предыдущим запуском той же программы (которая выполняет некоторое сканирование Nutch). Выполнение ls -l под cygwin показывает, что пользователь и группа верны, но права доступа - 000.

Дополнительная информация:

  • dir ничего не сообщает мне о разрешениях.
  • Я могу удалить каталог с помощью del в окне cmd.exe или rm -rf в окне cygwin bash.
  • Рассматриваемые файлы и каталог, в котором они находятся in, были созданы ранее при том же запуске той же программы.
  • На компьютере установлена ​​Windows 7, поэтому я предполагаю, что это означает NTFS.
5
задан Paul Tomblin 29 November 2010 в 14:06
поделиться