使用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);
最佳答案
copyTo(SmbFile)
和renameTo(SmbFile)
之间有一个有趣的区别-只有其中一个说此文件和目标文件不需要在同一主机上。由于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();