Cómo cambiar el nombre de un archivo en sdcard con la aplicación de Android?

En mi aplicación de Android, quiero cambiar el nombre del nombre de archivo en tiempo de ejecución. ¿Cómo puedo hacerlo?

Este es mi código:

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(); } 

También utilicé el método renameTo (File f) pero no funciona.

Yo recomendaría usar File.renameTo() lugar de ejecutar el comando mv , ya que estoy bastante seguro de que este último no es compatible.

¿Ha dado permiso a su aplicación para escribir en la tarjeta SD ?

Para ello, añada lo siguiente a su AndroidManifest.xml :

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

Si no funciona una vez que se ha añadido el permiso, compruebe si hay errores al intentar cambiar el nombre del archivo (ya sea mediante el comando adb o en la vista de logcat en Eclipse).

Al acceder a la tarjeta SD no debe codificar la ruta sino que utiliza el método Environment.getExternalStorageDirectory() para obtener el directorio.

El siguiente código funciona para mí:

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

También puede dar explicitamente la ruta completa sin especificar el directorio …

 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); 

He intentado agregar permisos. Aunque no funcionó, añadiendo File1.setWritable(true); Me permitió cambiar el nombre del archivo.

A continuación se muestra mi fragmento de código:

 if(from.setWritable(true)) Log.d("InsertFragmentTwo ", "FileName==> Is Writable"); File two = new File(sdcard,""+imageCount+"."+s.substring((s.lastIndexOf(".")+1))); if (from.renameTo(two)) { Log.d("InsertFragmentTwo ", "New FileName==> " + temp); imageCount++; retrofitImageUpload(temp); } else Log.d("InsertFragmentTwo ", "File Renaming Failed"); 
  • Cómo escribir una matriz en un archivo de texto en el almacenamiento interno?
  • Copiando toda la carpeta con su contenido de los activos a los archivos internos de la aplicación /
  • Cómo obtener datos Exif de un InputStream en lugar de un archivo?
  • Fecha de creación del archivo en android
  • ¿Cuál es la mejor manera de crear archivos temporales en Android?
  • Obtener información de mapa de bits de mapa de bits almacenado en carpeta dibujable
  • Escribir y leer cadenas a / desde archivo interno
  • Android: Lectura de XML desde un recurso local (para pruebas)
  • Cómo subir un archivo de audio a Parse.com - Android
  • Reproducción de archivos de audio desde Sdcard
  • Android estableció la última hora modificada para el archivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.