В моем приложении 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) метод, но он не работает.
Я бы рекомендовал использовать 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...");
}