我知道有许多问题,比如我的问题。但它是不同的。我将文件从文件夹A复制到EXTERNAL_STORAGE
中的文件夹B,使用下面的方法:
public static String copyFile(String path) {
String fileToName = String.valueOf(System.currentTimeMillis());
File pathFrom = new File(path);
File pathTo = new File(Environment.getExternalStorageDirectory() + "/.noname");
File file = new File(pathTo, fileToName + ".bak");
while (file.exists()) {
fileToName = String.valueOf(System.currentTimeMillis());
file = new File(pathTo, fileToName + ".bak");
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(pathFrom);
out = new FileOutputStream(file);
byte[] data = new byte[in.available()];
in.read(data);
out.write(data);
in.close();
out.close();
} catch (FileNotFoundException e) {
Log.e(TAG, e.getMessage());
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
return file.getPath();
}
路径参数是:“/ storage_emulated/0/Download/image_preview.jpg”。
执行此方法时出现错误:/storage/emulated/0/Download/tree_leaves_sunlight.jpg: open failed: ENOENT (No such file or directory)
。
文件夹.noname
已存在。
对我的问题有什么建议吗?
**更新:这个文件我用ImageView
打开。当我不打开时,我可以复制。但是当我打开时,我收到了这个错误。
PS:我在ImageView
预览图像。并且有一个Button
副本图像。单击按钮执行方法时,将此图像复制到其他文件夹。
答案 0 :(得分:1)
为父目录创建File对象时
File pathTo = new File(Environment.getExternalStorageDirectory() + "/.noname")
不要忘记实际创建此文件夹
pathTo.mkdirs();
还尝试打开您要在图库中复制的文件。它可能会被损坏而Android无法打开它。