переместите видеофайл из /mnt/sdcard в /mnt/extsd

Я пытаюсь переместить файл из /mnt/sdcard в /mnt/extsd В настоящее время файл хранится в /mnt/sdcard/DCIM/camera после съемки видео, но теперь я хочу переместить этот файл в /mnt/extsd

Я использую следующий код

File fromFile=new File( "/mnt/sdcard/folderpath" ,"/video.mp4");
File toFile=new File("/mnt/extsd" ,fromFile.getName());
fromFile.renameTo(toFile);

Я читал, что renameTo не работает для перемещения в разные файловые системы.

Пожалуйста помогите


person Hemantwagh07    schedule 02.02.2013    source источник
comment
ты просто скопируй этот файл в свою папку и после этого удали этот файл   -  person duggu    schedule 02.02.2013


Ответы (3)


 try {

java.io.FileInputStream fosfrom = новый java.io.FileInputStream(fromFile);

java.io.FileOutputStream fosto = новый FileOutputStream(toFile);

байт bt[] = новый байт[1024];

интервал с;

в то время как ((c = fosfrom.read(bt)) > 0) {

fosto.write(bt, 0, c); //将内容写到新文件当中

  }

fosfrom.close();

fosto.close();

} поймать (Исключение ex) {

Log.e("readfile", ex.getMessage());

  }

  }

person nick.yu    schedule 02.02.2013

укажите исходный файл, где существует ваш файл, и целевое местоположение, где вы хотите сохранить.

public static void copyDirectoryOneLocationToAnotherLocation(File sourceLocation, File targetLocation)
    throws IOException {

if (sourceLocation.isDirectory()) {
    if (!targetLocation.exists()) {
        targetLocation.mkdir();
    }

    String[] children = sourceLocation.list();
    for (int i = 0; i < sourceLocation.listFiles().length; i++) {

        copyDirectoryOneLocationToAnotherLocation(new File(sourceLocation, children[i]),
                new File(targetLocation, children[i]));
    }
} else {

    InputStream in = new FileInputStream(sourceLocation);

    OutputStream out = new FileOutputStream(targetLocation);

    // Copy the bits from instream to outstream
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}

}

person duggu    schedule 02.02.2013
comment
можете ли вы указать имя исходного файла и целевого файла, например. - person Sunil Kumar; 18.04.2013

согласно документации Android" Оба пути должны быть в одной и той же точке монтирования», так как это может быть использовано для переименования файлов только в случае разных путей. Поэтому, если вы хотите переместить его, вам, вероятно, следует скопировать его, а затем переименовать, а затем удалить исходный файл.
Но в данном случае вы пытаетесь не только переместить файл из одной ФС в другую, но и пытаетесь использовать /mnt/extsd, что может вообще не уметь. Задайте этот вопрос о таких путях.

person Stan    schedule 06.03.2013