Как переименовать файл на sdcard с приложением Android?

В моем приложении 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 (Файл f) метод, но он не работает.

14
задан hlovdal 25 March 2013 в 09:46
поделиться

1 ответ

Я бы рекомендовал использовать File.renameTo () вместо выполнения команды mv , поскольку я уверен, что последняя не поддерживается ..

Дали ли вы своему приложению разрешение на запись на SD-карту ?

Для этого добавляете следующее в свой AndroidManifest.xml :

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

Если это не сработает после добавления разрешения, проверьте журнал устройства на наличие ошибок при попытке переименовать файл (либо с помощью команды adb , либо в представлении 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);

, и если вы хотите проверить процесс, вы можете сделать что-то вроде:

boolean renamed = from.renameTo(to);

if (renamed) {
  Log.d("LOG","File renamed...");
}else {
  Log.d("LOG","File not renamed...");
}
86
ответ дан 1 December 2019 в 05:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: