现在,我正在开发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消息。我尝试了很多方法,但无法保存图像。
答案 0 :(得分:0)
正如我从您的“保存失败”吐司消息中看到的那样,它正在捕获异常。您可以在此处粘贴堆栈跟踪或错误日志吗?