我希望我的应用程序的用户能够删除DCIM文件夹(位于SD卡上并包含子文件夹).
这有可能,如果是这样的话怎么样?
我打算分享图像的意图.这适用于大多数提供商,但适用于Google+.Google+会在没有图片的情况下打开帖子活动并显示祝词"您只能发布存储在设备上的照片".同时.
File f = storeImage(image); // f = /data/data/com.myapp/files/1333070776978.jpg
Uri uri = Uri.fromFile(f);
Intent share = new Intent(Intent.ACTION_SEND);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TITLE,"Share that title");
share.putExtra(Intent.EXTRA_SUBJECT,"Share that subject");
share.putExtra(Intent.EXTRA_TEXT,"Check that out...");
share.putExtra("sms_body", "sms body");
startActivity(Intent.createChooser(share, "Share Image"));
Run Code Online (Sandbox Code Playgroud)
我保存图像
Context.openFileOutput(fileName, Context.MODE_WORLD_READABLE);
Run Code Online (Sandbox Code Playgroud)
我的理解是,通过设置FLAG_GRANT_READ_URI_PERMISSION,我授予Google+特定访问权限.
当我将图像存储到MediaStore时它可以工作,但我实际上不想弄乱用户图像库.
ContentValues values = new ContentValues(2);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, f.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏
西蒙
我正在使用以下代码并使用apache commons库将一个文件(临时音频文件)从源文件夹复制到目标文件夹TT_1A.
button1_save.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String sourcePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TT/tt_temp.3gp";
File source = new File(sourcePath);
String descPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TT/tt_1A.3gp";
File desc = new File(descPath);
try
{
FileUtils.copyDirectory(source, desc);
}
catch (IOException e)
{
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
http://commons.apache.org/proper/commons-io/download_io.cgi
我已经使用了这个FileUtils函数来复制临时文件并粘贴到desc文件夹作为TT_1A.然而,logcat报告错误,具体如下:
10-17 00:41:04.260: E/AndroidRuntime(27450): FATAL EXCEPTION: main
10-17 00:41:04.260: E/AndroidRuntime(27450): java.lang.NoClassDefFoundError: org.apache.commons.io.FileUtils
10-17 00:41:04.260: E/AndroidRuntime(27450): at com.abc.abc.TT_details_canton$14.onClick(TT_details_canton.java:575)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.view.View.performClick(View.java:4223)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.view.View$PerformClick.run(View.java:17275)
10-17 …Run Code Online (Sandbox Code Playgroud) 有一些例子,人们close()在finally写入文件时会调用它们,例如:
OutputStream out = null;
try {
out = new FileOutputStream(file);
out.write(data);
out.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
但也有很多 更多的例子,包括Android官方文档,他们不这样做:
try {
OutputStream out = new FileOutputStream(file);
out.write(data);
out.close();
}
catch (IOException e) {
Log.e("Exception", "File write …Run Code Online (Sandbox Code Playgroud) 我在应用程序目录中创建了文件夹。
File dir = new File(getActivity().getFilesDir().getParent() + File.separator + "Image directory");
Run Code Online (Sandbox Code Playgroud)
在那我再次创建了指定内容的文件夹
File dir1 = new File(getActivity().getFilesDir().getParent() + File.separator + "Image directory" + File.separator+ "Image 1");
Run Code Online (Sandbox Code Playgroud)
在里面我要存储图像。图像被存储和访问。
我想删除存储在 dir1 位置的所有图像。
我试过
if(dir1.isDirectory())
{
for (int j = 0; j < dir1.length; j++)
{
File file = new File(dir1, dir1[j]);
//file.canExecute();
file.delete();
}
}
Run Code Online (Sandbox Code Playgroud)
file.delete(); 每次都返回false。
我在清单中添加了权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
Run Code Online (Sandbox Code Playgroud)