android - 如何使用 Android 应用程序重命名 sdcard 上的文件?

标签 android runtime filenames 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();
}

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

最佳答案

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

你有没有给你的 application permission to write to the SD Card

您可以通过 adding the following to your AndroidManifest.xml 执行此操作:

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

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

访问 SD 卡时,您不应硬编码路径,而应使用 the Environment.getExternalStorageDirectory()获取目录的方法。

以下代码适用于我:

File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard,"from.txt");
File to = new File(sdcard,"to.txt");
from.renameTo(to);

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

boolean renamed = from.renameTo(to);

if (renamed) {
  Log.d("LOG","File renamed...");
}else {
  Log.d("LOG","File not renamed...");
}

关于android - 如何使用 Android 应用程序重命名 sdcard 上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2896733/

相关文章:

android - 为 TeamCity 构建服务器设置 Android_HOME

android - Flutter-支持多种BuildType的构建

ios - 如何在 iOS 上实现功能关闭开关

c++ - 究竟为什么编译器直到运行时才能确定变量的真实类型?

module - Lua 全局变量包含当前文件的路径?

vb.net - 从正在运行的进程中提取文件名和路径

android - Android 手机 2 秒后 YouTubePlayerView 中的视频暂停

android - 退出 onPreviewFrame 并通知用户

python-3.x - 贪心算法和时间复杂度#2

python - 保存文件并重命名旧版本