java .io.IOException: больше нет файлов; При копировании файлов в расположение сегмента с помощью Apache Commons - PullRequest
0 голосов
/ 20 февраля 2020

Когда некоторые файлы копируются в общий путь на сервере Windows ( оба сервера являются виртуальными машинами ), я получаю следующее исключение для некоторых файлов

java.io.IOException: There are no more files
        at java.io.WinNTFileSystem.canonicalizeWithPrefix0(Native Method)
        at java.io.WinNTFileSystem.canonicalizeWithPrefix(WinNTFileSystem.java:451)
        at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:422)
        at java.io.File.getCanonicalPath(File.java:618)
        at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1076)
        at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1040)
        ...

Ниже приведен мой код

      String destination  = "\\remote-server\files"
      for (int i = 0; i < listOfFiles.length; i++)
      {
        if (listOfFiles[i].getAbsoluteFile().exists())
        {
          String fileName = listOfFiles[i].getName();

          File destFile = new File( destination + File.separator + fileName);
          File sourceFile = listOfFiles[i].getAbsoluteFile();
          LoggerWrapper.getInstance().info(MessageFormat.format("Copying {0}", sourceFile.getName()));
          try
          {
            if (sourceFile.isDirectory())
            {
              FileUtils.copyDirectory(sourceFile, destFile);
            }
            else
            {
              FileUtils.copyFile(sourceFile, destFile);
            }             
          }
          catch (IOException e)
          {
            LoggerWrapper.getInstance().error(e.getMessage(), e);
          }
        }
      }

Это исключение происходит случайно. Это означает, что если я перезапущу код, я получу исключение для разных файлов. Поиск Google по этому вопросу предложил проверить любое программное обеспечение безопасности. Но в моем случае нет программного обеспечения для обеспечения безопасности. Может ли кто-нибудь, пожалуйста, помочь в этом. Это проверки, которые я уже сделал.

  • Использовал локальный путь в качестве места назначения вместо общего пути: успешно скопирован
  • Проверка на наличие программного обеспечения безопасности: Нет
  • При наличии полного разрешения на общий путь
  • Включена поддержка длинного пути
  • Дисковое пространство: используется только 2% диска
  • Копирование через PowerShell: Нет, проблема успешно скопирована
...