【问题标题】:Move/Rename file in SD Card移动/重命名 SD 卡中的文件
【发布时间】:2012-02-22 08:15:29
【问题描述】:

我正在尝试将文件从一个目录移动到另一个目录(在 SD 卡中)

我有一个文件的 URI 以及我试图移动它的方式:

Uri selectedImage = imageReturnedIntent.getData(); // this the uri, something like content://media/external/images/media/635

File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard, selectedImage);
File to = new File(sdcard, "myNewDir/mynewfile.jpg");
from.renameTo(to);

但它不起作用,它也没有在 Logcat 中给我任何错误...

编辑:

我已将这两种权限添加到我的清单文件中:

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

【问题讨论】:

  • 当您说“不起作用”时,究竟发生了什么?另外,您是否添加了 WRITE_EXTERNAL_STORAGE 权限?
  • 我稍微更新了我的问题。我添加了权限...什么也没发生,它不会简单地移动文件,也不会给我任何错误。

标签: java android file-io android-sdcard


【解决方案1】:
// this the uri, something like content://media/external/images/media/635

然后您正在做的是尝试将其连接到Environment.getExternalStorageDirectory()。这行不通。 content://media/external/images/media/635 既不是相对文件系统路径也不是绝对文件系统路径。这是一个Uri

如果您希望将图像从Uri 复制到本地文件,请使用ContentResolverUri 表示的图像上获取InputStream,然后使用Java I/O 复制从InputStream 到目标文件的字节。

【讨论】:

  • 你是对的。我将 uri 更改为绝对路径,一切都按需要运行。
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多