Tôi đang sử dụng mã sau để tải xuống tệp từ máy chủ của mình, sau đó ghi tệp đó vào thư mục gốc của thẻ SD, tất cả đều hoạt động tốt:
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());
}
}
}
Tuy nhiên, việc sử dụng Environment.getExternalStorageDirectory();
có nghĩa là tệp sẽ luôn ghi vào thư mục gốc /mnt/sdcard
. Có thể chỉ định một thư mục nào đó để ghi tệp vào không?
Ví dụ: /mnt/sdcard/myapp/downloads