Android:打开失败:ENOENT没有这样的文件或目录

时间:2015-10-21 07:54:23

标签: android android-external-storage

我知道有许多问题,比如我的问题。但它是不同的。我将文件从文件夹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副本图像。单击按钮执行方法时,将此图像复制到其他文件夹。

1 个答案:

答案 0 :(得分:1)

为父目录创建File对象时  File pathTo = new File(Environment.getExternalStorageDirectory() + "/.noname") 不要忘记实际创建此文件夹

 pathTo.mkdirs();

还尝试打开您要在图库中复制的文件。它可能会被损坏而Android无法打开它。