Tôi đã kéo tóc ra khỏi cái này một lúc rồi. Phương pháp sau đây được yêu cầu tải xuống tệp và lưu tệp đó vào vị trí được chỉ định trên ổ đĩa cứng.Phương thức mkdirs() không hoạt động trong android/java
private static void saveImage(Context context, boolean backgroundUpdate, URL url, File file) {
if (!Tools.checkNetworkState(context, backgroundUpdate))
return;
// Get the image
try {
// Make the file
file.getParentFile().mkdirs();
// Set up the connection
URLConnection uCon = url.openConnection();
InputStream is = uCon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
// Download the data
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
// Write the bits to the file
OutputStream os = new FileOutputStream(file);
os.write(baf.toByteArray());
os.close();
} catch (Exception e) {
// Any exception is probably a newtork faiilure, bail
return;
}
}
Ngoài ra, nếu tệp không tồn tại, bạn phải tạo thư mục cho tệp. (Và nếu có một tập tin khác đã có ở chỗ đó, nó không nên làm gì cả). Tuy nhiên, vì một số lý do, phương thức mkdirs() không bao giờ làm cho thư mục. Tôi đã thử tất cả mọi thứ từ dấu ngoặc đơn rõ ràng, để rõ ràng làm cho lớp tập tin cha mẹ, và không có gì có vẻ làm việc. Tôi khá chắc chắn rằng các ổ đĩa có thể ghi được, vì nó chỉ được gọi sau khi đã được xác định, đó cũng là sự thật sau khi chạy qua nó trong khi gỡ lỗi. Vì vậy, phương pháp thất bại vì các thư mục cha mẹ không được thực hiện. Bất cứ ai có thể cho tôi biết nếu có bất cứ điều gì sai trái với cách tôi gọi nó?
Ngoài ra, nếu nó giúp, đây là nguồn gốc cho các tập tin tôi gọi nó trong:
Cảm ơn bạn
Tôi không thể tin được, điều đó đã hiệu quả. Bây giờ tôi cảm thấy như một thằng ngốc. Mặt khác, nó đã được kỳ diệu làm việc khác sửa đổi khác của dự án, lạ. Cảm ơn bạn rất nhiều. –