2012-03-07 4 views
6

Я работаю над Android. Мое требование состоит в том, что у меня есть один каталог с некоторыми файлами, позже я загрузил некоторые другие файлы в другой каталог, и я собираюсь скопировать все файлы из последнего каталога в первый каталог. И прежде чем копировать файлы в первый каталог из последних, мне нужно удалить все файлы из первого каталога.Как скопировать мои файлы из одного каталога в другой каталог?

+0

хорошо иногда искать андроида/Java док или по крайней мере использовать поле «поиск» может быть действительно очень полезно – Blackbelt

+0

ли вы найти решение? Пожалуйста, порекомендуйте? – marienke

ответ

21
void copyFile(File src, File dst) throws IOException { 
     FileChannel inChannel = new FileInputStream(src).getChannel(); 
     FileChannel outChannel = new FileOutputStream(dst).getChannel(); 
     try { 
      inChannel.transferTo(0, inChannel.size(), outChannel); 
     } finally { 
      if (inChannel != null) 
      inChannel.close(); 
      if (outChannel != null) 
      outChannel.close(); 
     } 
    } 

Я не могу вспомнить, где я нашел это, но это была из полезной статьи, которую я использовал для резервного копирования базы данных SQLite.

+0

Просто и идеально. Не знаю, будет ли отлично работать с большими файлами, на всякий случай, пусть протестировать его. – jfcogato

0

Вы должны также использовать ниже код:

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

} 
+0

сохранить файл локально успешно –

+0

Пожалуйста, попробуйте воздержаться от txtspk здесь. Быстрый поиск показывает, что вы использовали «u», что означает «вы» 39 раз, а «ur» означает «ваш» 25 раз. Это много ремонтных работ, которые вы создаете для добровольцев. – halfer

5

Apache FileUtils делает это очень просто и красиво ..

включают Apache Commons IO пакет добавить Викисклада io.jar

или

общеобразовательные и андроидные градиенты

compile 'commons-io:commons-io:2.4' 

Добавьте этот код

String sourcePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/sourceFile.3gp"; 
     File source = new File(sourcePath); 

     String destinationPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/destFile.3gp"; 
     File destination = new File(destinationPath); 
     try 
     { 
      FileUtils.copyFile(source, destination); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
Смежные вопросы