Когда некоторые файлы копируются в общий путь на сервере 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: Нет, проблема успешно скопирована