में काम नहीं कर मैं बाहर अब थोड़ी देर के लिए इस पर मेरे बाल खींच रहा है। निम्न विधि को फ़ाइल डाउनलोड करना है, और हार्ड ड्राइव पर निर्दिष्ट स्थान पर सहेजना है।फ़ाइल mkdirs() विधि एंड्रॉयड/जावा
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;
}
}
इसके अलावा, यदि फ़ाइल मौजूद नहीं है, तो यह फ़ाइल के लिए निर्देशिका बनाना है। (और यदि उस स्थान पर पहले से ही एक और फाइल है, तो इसे कुछ भी नहीं करना चाहिए)। हालांकि, किसी कारण से, mkdirs() विधि निर्देशिका को कभी नहीं बनाता है। मैंने स्पष्ट रूप से मूल फ़ाइल वर्ग बनाने के लिए स्पष्ट ब्रांड्स से सब कुछ करने की कोशिश की है, और कुछ भी काम नहीं करता है। मैं काफी हद तक निश्चित हूं कि ड्राइव लिखने योग्य है, क्योंकि इसे केवल बाद में ही निर्धारित किया जा चुका है, यह भी डिबगिंग के दौरान इसे चलाने के बाद सच है। तो विधि विफल हो जाती है क्योंकि मूल निर्देशिका नहीं बनाई जाती है। क्या कोई मुझे बता सकता है कि जिस तरह से मैं इसे बुला रहा हूं उससे कुछ गलत है?
धन्यवाद
मैं विश्वास नहीं कर सकता, यह काम किया। मैं अब बेवकूफ की तरह महसूस करता हूँ। दूसरी तरफ, यह प्रोजेक्ट के अन्य अन्य संशोधनों में जादुई रूप से काम कर रहा था, अजीब। आपका बहुत धन्यवाद। –