मैं अपने सर्वर से एक फ़ाइल डाउनलोड करने के लिए निम्नलिखित कोड का उपयोग कर रहा हूं फिर इसे एसडी कार्ड की रूट डायरेक्टरी में लिखें, यह सब ठीक काम करता है:
package com.downloader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.Environment;
import android.util.Log;
public class Downloader {
public void DownloadFile(String fileURL, String fileName) {
try {
File root = Environment.getExternalStorageDirectory();
URL u = new URL(fileURL);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(root, fileName));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
} catch (Exception e) {
Log.d("Downloader", e.getMessage());
}
}
}
हालांकि, Environment.getExternalStorageDirectory();
इसका उपयोग करने का मतलब है कि फ़ाइल हमेशा रूट पर लिखी जाएगी /mnt/sdcard
। क्या फ़ाइल लिखने के लिए एक निश्चित फ़ोल्डर निर्दिष्ट करना संभव है?
उदाहरण के लिए: /mnt/sdcard/myapp/downloads