我用这个方法移动文件到另一个文件夹

public void moveFile(String fromPath, String toPath) {
File fromFolder = new File(fromPath);
File[] fromFiles = fromFolder.listFiles();
if (fromFiles == null) {
return;
}
File toFolder = new File(toPath);
if (!toFolder.exists()) {
toFolder.mkdirs();
}
for (int i = 0; i < fromFiles.length; i++) {
File file = fromFiles[i];
if (file.isDirectory()) {
moveFile(file.getPath(), toPath + "\" + file.getName());
// 亦可删除
file.delete();
}
if (file.isFile()) {
File toFile = new File(toFolder + "\" + file.getName());
if (toFile.exists()) {
// 亦可删除
toFile.delete();
}
// 移动文件
file.renameTo(toFile);
}

    }
}

写的测试类,在自己电脑上测试没有问题,可是部署到服务器上之后,文件是实现了转存,可是 服务器上是这样的

drwxr-xr-x 2 root root 4096 Sep 28 11:24 2
-rw-r--r-- 1 root root 140353 Sep 28 12:28 2\124685e5-734f-4a23-aeb5-7e306185010d.jpg

服务器上的那个2文件夹是个空的,下面的图片名称变成这样了

正确的应该是
\home\basecarupload\upload\user\1000000009\10000000095040201\2\9bd93c45-e1ac-4640-a75c-8609f6aa7c47.jpg

临时图片路径:
/home/basecarupload/upload/usertemp/1000000009/2/
图片固定路径:/home/basecarupload/upload/user/1000000009/10000000095040201/2/

我写的测试类,在自己电脑上测试结果是没问题的,部署到服务器上之后就是这样的了。为什么会这样啊?

1个回答

是不是文件路径不对,递归调用时路径不对:路径分隔符用File.separator,不用字符“\"

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问