JCIFS SmbFile RenameTo не может переместить файл - PullRequest
0 голосов
/ 30 октября 2018

У меня странное поведение при использовании метода JCIFS SmbFile.renameTo (). Когда я выполняю приведенный ниже код, он должен переместить сетевой файл из test1 в test2, но вместо этого он создает папку в test2 с именем test.xml и выдает следующую ошибку «Невозможно создать файл, когда этот файл уже существует ...» не понять это. Почему этот метод делает это?

 NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication (sDomain, 
                                       sUsername, sPassword);
 SmbFile smbFromFile = new SmbFile("smb://test1/test.xml", auth);
 SmbFile smbToFile = new SmbFile("smb://test2/test.xml", auth);
 smbFromFile.renameTo(smbToFile);

1 Ответ

0 голосов
/ 30 октября 2018

Существует интересная разница между copyTo(SmbFile) и renameTo(SmbFile) - только один из них говорит Этот файл и файл назначения не обязательно должны быть в одном и том же host. Поскольку renameTo(SmbFile) не не говорит, что я могу только предположить, что вы должны использовать copyTo, а затем delete() оригинал.

SmbFile smbFromFile = new SmbFile("smb://test1/test.xml", auth);
SmbFile smbToFile = new SmbFile("smb://test2/test.xml", auth);
// smbFromFile.renameTo(smbToFile);
smbFromFile.copyTo(smbToFile);
smbFromFile.delete();
...