为什么无法将图像从源文件夹复制/保存到目标文件夹?

时间:2019-06-27 07:40:49

标签: android image

现在,我正在开发Whatsapp Statues下载器应用程序。我完成了将图像从Whatsapp文件夹显示到我的应用程序Recyclerview的操作。现在我坚持保存图像文件,将源文件夹保存到目标文件夹。

在RecyclerView上的单击方法:

                        holder.mImageView.setOnClickListener(new View.OnClickListener() {
                     @Override
                        public void onClick(View view) {
                      //mDataset is contain the Image files

                        try {

                         file_operation.save(mDataset.get(ourPosition));

                            Toast.makeText(mContext, "saved", Toast.LENGTH_SHORT).show();
                        } catch (IOException e) {
                            Toast.makeText(mContext, "saving failed", Toast.LENGTH_SHORT).show();
                            e.printStackTrace();
                        }

我的saveImage类:

    package com.example.storage;

    import android.os.Environment;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.nio.channels.FileChannel;

    public class file_operation {


   public static void save(File sourcefile) throws IOException {
    File f3 = sourcefile;
    String filename = f3.getName();
    File desti_file = new File(Environment.getDataDirectory().toString() + FilesData.getSavedFilesLocation(), filename);

     if (!desti_file.exists()) {
        desti_file.mkdir();
         }
     if (!desti_file.getParentFile().exists()) {
        desti_file.mkdirs();
         }
     if (!desti_file.exists()) {
        desti_file.createNewFile();
         }

     FileChannel source = null;
     FileChannel destination = null;

    try {
        source = new FileInputStream(f3).getChannel();
        destination = new FileOutputStream(desti_file).getChannel();

        // inChannel.transferTo(0, inChannel.size(), outChannel);
        source.transferTo(0, source.size(), destination);
        // destination.transferFrom(source, 0, source.size());
    } finally {
        if (source != null) {
            source.close();
        }
        if (destination != null) {
            destination.close();
        }
    }
    FilesData.scrapSavedFiles();

}

}

当我运行应用程序时,我总是收到“保存失败”的Toast消息。我尝试了很多方法,但无法保存图像。

1 个答案:

答案 0 :(得分:0)

正如我从您的“保存失败”吐司消息中看到的那样,它正在捕获异常。您可以在此处粘贴堆栈跟踪或错误日志吗?