2012-03-07 12 views
6

मैं एंड्रॉइड पर काम कर रहा हूं। मेरी आवश्यकता यह है कि मेरे पास कुछ फाइलों के साथ एक निर्देशिका है, बाद में मैंने कुछ अन्य फ़ाइलों को दूसरी निर्देशिका में डाउनलोड किया और मेरा इरादा सभी फ़ाइलों को नवीनतम निर्देशिका से पहली निर्देशिका में कॉपी करना है। और फ़ाइलों को नवीनतम निर्देशिका में नवीनतम से कॉपी करने से पहले मुझे पहली निर्देशिका से सभी फ़ाइलों को हटाने की आवश्यकता है।मेरी फ़ाइलों को एक निर्देशिका से दूसरी निर्देशिका में कैसे कॉपी करें?

+0

अच्छी तरह से कभी कभी एंड्रॉयड/जावा दस्तावेज़ के लिए लग रही है या कम से कम उपयोग करें "खोज" बॉक्स वास्तव में बहुत उपयोगी हो सकता है – 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 से बचना चाहिए। एक त्वरित खोज से संकेत मिलता है कि आपने "यू" का अर्थ "आप" का अर्थ 39 बार किया है, और "यू" जिसका अर्थ है "आपका" 25 बार। यह स्वयंसेवकों के लिए बना रहे कई मरम्मत कार्य है। – halfer

5

अपाचे FileUtils यह बहुत ही सरल और अच्छी तरह से करता है ..

पैकेज कब अपाचे कॉमन्स कॉमन्स-io.jar

जोड़ने शामिल

या

कॉमन्स-कब एंड्रॉयड Gradle dependancy

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(); 
     } 
संबंधित मुद्दे

 संबंधित मुद्दे