En mi aplicación 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 he usado renameTo(File f) método pero no funciona.

Visita [este][1] [1]: stackoverflow.com/questions/9065514/move-rename-file-in-sd-card
Es necesario aceptar respuestas, si quieres que la gente a ayudar a usted, para su INFORMACIÓN

OriginalEl autor Addy | 2010-05-24

4 Comentarios

  1. 84

    Me gustaría recomendar el uso de Archivo.renameTo() en lugar de correr el mv comando, ya que estoy bastante seguro de que el último no es compatible..

    Que han dado su solicitud de permiso para escribir en la Tarjeta SD?

    Hacerlo por agregar lo siguiente a tu AndroidManifest.xml:

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

    Si no funciona una vez que el permiso se agrega compruebe el dispositivo de registro de errores cuando intenta cambiar el nombre del archivo (utilizando el adb de comandos o en la logcat ver en Eclipse).

    Al acceder a la Tarjeta SD no debería duro-código de la ruta, pero en lugar de utilizar el medio Ambiente.getExternalStorageDirectory() método para obtener el directorio.

    El siguiente código me funciona:

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

    y si desea comprobar el proceso, usted puede hacer como:

    boolean renamed = from.renameTo(to);
    
    if (renamed) {
      Log.d("LOG","File renamed...");
    }else {
      Log.d("LOG","File not renamed...");
    }
    Ahora trato de Archivo f1=new File(«/sdcard/sol moon.jpg»); Archivo f2=new File(«/sdcard/soon_moon.jpg»); try { f1.renameTo(f2); } catch (Exception e) { Toast.makeText(this, «»+e, Tostadas.LENGTH_LONG).show(); } y utilizar el permiso <uses-permission android:name=»android.el permiso.WRITE_EXTERNAL_STORAGE» /> en androidManifest.xml archivo, pero aun así, no hay cambios.
    No hay ningún error en logcaat
    He actualizado mi respuesta con el código que me funciona. ¿renameTo() Volver true o false cuando se ejecuta? Si devuelve false, ¿qué f1.exists() retorno?
    usted debe aceptar la respuesta como correcta.

    OriginalEl autor Dave Webb

  2. 5

    también puede explícitamente dar 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);

    OriginalEl autor Xar E Ahmer

  3. 0

    He intentado añadir permisos. Aunque no trabajo, añadiendo File1.setWritable(true); me permitió cambiar el nombre del archivo.

    A continuación es 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");

    OriginalEl autor ashish bulchandani

  4. 0
    public void selectFile() {
    AlertDialog.Builder pictureDialog = new AlertDialog.Builder(this);
    pictureDialog.setTitle("Select Action");
    String[] pictureDialogItems = {
    "Select file from internal storage"};
    pictureDialog.setItems(pictureDialogItems,
    new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    switch (which) {
    case 0:
    choosePhotoFromGallary();
    break;
    }
    }
    });
    pictureDialog.show();
    }
    public void choosePhotoFromGallary() {
    Intent galleryIntent = new Intent(Intent.ACTION_PICK,
    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(galleryIntent, GALLERY);
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == this.RESULT_CANCELED) {
    return;
    }
    if (requestCode == GALLERY) {
    if (data != null) {
    Uri contentURI = data.getData();
    File dir = Environment.getExternalStorageDirectory();
    if(dir.exists()){
    File from = new File(dir, String.valueOf(GALLERY));
    File to = new File(dir,"filerename.txt");
    if(from.exists())
    from.renameTo(to);
    }
    }
    }
    }

    OriginalEl autor Tayyab Hayat

Dejar respuesta

Please enter your comment!
Please enter your name here