如何使用Android应用程序重命名SD卡上的文件?

Add*_*ddy 14 filenames android runtime rename

在我的Android应用程序中,我想在运行时重命名文件名.我该怎么做?

这是我的代码:

String[] command = {" mv", "sun moon.jpg"," sun_moon,jpg"};
try
{
    Process process = Runtime.getRuntime().exec(command);
} 
catch (IOException e)
{
    Toast.makeText(this, ""+e, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)

我也使用renameTo(File f)方法,但它不起作用.

Dav*_*ebb 86

我建议使用File.renameTo()而不是运行mv命令,因为我很确定后者不受支持..

您是否已将您的申请许可写入SD卡

您可以通过添加以下内容来AndroidManifest.xml执行此操作:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

如果在添加权限后它不起作用,请在尝试重命名文件时检查设备日志中的错误(使用adb命令或在Eclipse 中的logcat视图中).

访问SD卡时,不应对路径进行硬编码,而应使用Environment.getExternalStorageDirectory()方法获取目录.

以下代码适用于我:

File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard,"from.txt");
File to = new File(sdcard,"to.txt");
from.renameTo(to);
Run Code Online (Sandbox Code Playgroud)

如果你想检查过程,你可以这样做:

boolean renamed = from.renameTo(to);

if (renamed) {
  Log.d("LOG","File renamed...");
}else {
  Log.d("LOG","File not renamed...");
}
Run Code Online (Sandbox Code Playgroud)

  • @OP:你应该接受正确答案. (4认同)

Xar*_*mer 5

你也可以明确地给出完整路径而不指定目录...

File file = new File("Path of file which you want to rename");
File file2 = new File("new name for the file");
    boolean success = file.renameTo(file2);
Run Code Online (Sandbox Code Playgroud)