上午开始问的问题了,难道就没人会了吗?为什么我这个方法移动不了?代码是正常执行的,但是图片却没移动,而且要移动的那个图片也变成空的了。
/**
* 移动至指定文件夹
* @param path 图片源完整路径
* @param newPath 目标文件夹路径
* @param name 图片名称(例如:aaa.jpg)
* @return
*/
public static boolean moveFile(String path, String newPath, String name) {
File oldfile = new File(path);
if (!oldfile.exists()) {
return false;
}
File desfile = new File(newPath);
if (!desfile.exists()) {
desfile.mkdirs();
}
int size = 0;
try {
InputStream is = new FileInputStream(oldfile); // 读入原文件
OutputStream os = new FileOutputStream(desfile.getAbsolutePath() + name);
byte[] bs = new byte[1024];
while ((size = is.read(bs)) != -1) {
os.write(bs, 0, size);
os.flush();
}
os.close();
is.close();
oldfile.delete();
return true;
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "移动至指定文件夹异常失败");
return false;
}
}
要移动的肯定为空了啊,因为你调了oldfile.delete();
你应该在return true
之前加上if(desfile.getAbsolutePath().equals(newPath)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。