2012-11-15 9 views
5

मुझे एसडीकार्ड पर फ़ोल्डर और फ़ाइल बनाने में कोई समस्या है।बनाया गया फ़ोल्डर फ़ाइल एक्सप्लोरर में दिखाई नहीं दे रहा है ..

File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString() + "/folder"); 
    boolean success; 
    if (!folder.exists()) { 
     success = folder.mkdirs(); 
    } 
    File obdt = new File(folder, "file.txt"); 
    try { 
     success = obdt.createNewFile(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

इस कोड को मैं sdcard के Download फ़ोल्डर में फ़ोल्डर folder बनाने के लिए उम्मीद के साथ और इस फ़ाइल file में:

कोड यह रहा। मैं चाहता हूं कि उपयोगकर्ता फ़ाइल तक पहुंच सके। तो मैं इसे एक साझा फ़ोल्डर में रखना चाहता हूं।
success चर true है और जब मैं कोड फिर से चलाता हूं तो फ़ोल्डर पहले से मौजूद है और if-block में नहीं आता है।
लेकिन मैं फ़ाइल एक्सप्लोरर में sdcard पर बनाए गए फ़ोल्डर और फ़ाइल को नहीं देख सकता।

जानकारी: getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()storage/sdcard/Download

मैं काम देता है एक आकाशगंगा नेक्सस के साथ।

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

आप पहले से ही किया है, तो:

+0

क्या आपके पास PERMISSION सामान कहने में कोई अपवाद है? क्या होगा यदि आप 'सफलता' को 'झूठी' के मूल्य से प्रारंभ करते हैं? – dumbfingers

+0

नहीं, मेरे पास कोई अपवाद नहीं है ... सफलता तब गलत होती है जब इसे –

+0

प्रारंभ नहीं किया जाता है क्या आप इन फ़ोल्डरों को "स्टोरेज/एसडीकार्ड/डाउनलोड" ढूंढने में सक्षम हैं? –

उत्तर

2

अरे! :)

अब मैंने अपनी समस्या हल की है ... मैं फाइल सिस्टम में फाइलें बनाने के संचालन को गलत समझ रहा था।
जब मैंने फ़ाइल एक्सप्लोरर की बात की तो मेरा मतलब ऑपरेटिंग सिस्टम का फाइल एक्सप्लोरर था और डीडीएमएस में फ़ाइल एक्सप्लोरर नहीं था :)।
मैंने सोचा कि जब मैं एक फाइल बनाउंगा तो मैं इसे ऑपरेटिंग सिस्टम के फाइल एक्सप्लोरर में देखूंगा लेकिन जब डिवाइस पीसी से कनेक्ट होता है तो फाइलें केवल डीडीएमएस फाइल एक्सप्लोरर में देखी जा सकती हैं।
माफ करना, मैं एंड्रॉयड के लिए नया हूँ,)

जब अनुप्रयोग पीसी कनेक्शन के बिना स्टैंडअलोन चल रहा है और बाद में मैं पीसी मैं बनाई गई फ़ाइलों और पाठ्यक्रम :)

मदद के लिए धन्यवाद के फ़ोल्डर देखने के साथ कनेक्ट

0

आपने पहले से ऐसा नहीं किया है, तो आप अपने प्रकट करने के लिए नीचे पंक्ति जोड़कर करने के लिए एसडी कार्ड लिखने के लिए सही अनुमति अपने अनुप्रयोग देने के लिए की आवश्यकता होगी जो देखता है कि:

File obdt = new File(/sdcard/folder/file.txt) 
try { 
    success = obdt.createNewFile(); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 

काम करता है।

+0

पहले से ही –

+0

@ TobiWeßhaar संपादित किया गया है –

+0

फ़ाइल obdt = नई फ़ाइल ("/ sdcard/file.txt") का निर्माण; सफल है लेकिन मुझे इसे फाइल एक्सप्लोरर में नहीं दिख रहा है-.- –

0

लॉगकैट से कोई भी त्रुटि?
अन्य: Log.I ("PATHNAME", folder.absolutePath()) जैसे कुछ कोशिश करें; और उसके बाद यह सुनिश्चित करने के लिए कि आप कहां सोच रहे हैं वहां फ़ोल्डर कहां बना रहे हैं, अपने लॉगकट में देखें।

+0

पथ है:/भंडारण/sdcard0/डाउनलोड/फ़ोल्डर –

0

इसे आज़माएं।

 File dir = new File(Environment.getExternalStorageDirectory() 
       + "/XXX/Wallpapers/"); 
     File[] files = dir.listFiles(); 

     if (files == null) 

     { 
      int numberOfImages = 0; 
      BitmapDrawable drawable = (BitmapDrawable) imageView 
        .getDrawable(); 
      Bitmap bitmap = drawable.getBitmap(); 
      File sdCardDirectory = Environment 
        .getExternalStorageDirectory(); 
      new File(sdCardDirectory + "/XXX/Wallpapers/").mkdirs(); 
      File image = new File(sdCardDirectory 
        + "/XXX/Wallpapers/Sample" + numberOfImages + ".JPG"); 

      boolean success = false; 
      FileOutputStream outStream; 
      try { 
       outStream = new FileOutputStream(image); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream); 
       outStream.flush(); 
       outStream.close(); 
       success = true; 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 
      if (success) { 
       Toast.makeText(
         getApplicationContext(), 
         "Image saved successfully in Sdcard/XXX/Wallpapers", 
         Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(getApplicationContext(), 
         "Error during image saving", Toast.LENGTH_LONG) 
         .show(); 
      } 

न प्रकट

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

छवि एसडीकार्ड/XXX/वॉलपेपर में सफलतापूर्वक सहेजी गई है और यदि मैं फिर से चलाता हूं फ़ाइलें हैं! = शून्य और अगर ब्लॉक में नहीं आता है ... ऐसा लगता है कि सब सही है लेकिन फाइल एक्सप्लोरर मुझे फ़ोल्डर और तस्वीर नहीं दिख रहा है! -.- –

+0

फ़ाइल एक्सप्लोरर में आप और क्या देख पाएंगे और इसे अपने मोबाइल/डिवाइस पर चलाने की कोशिश भी करेंगे, निश्चित रूप से आप इसे प्राप्त करेंगे –

0

में अनुमति जोड़ने के लिए आप एक्सप्लोरर में फ़ोल्डर/फ़ाइल नहीं देख सकते हैं भूल जाते हैं? शायद ऐसा इसलिए है क्योंकि MediaScanner सक्रिय है, लेकिन आपकी फ़ाइलों को नहीं जोड़ रहा है। आप इसे अपने प्रोग्राम में कर सकते हैं या अपने फोन सेटिंग्स में कहीं भी मीडिया स्कैनर स्विच कर सकते हैं।

MediaScanner

Trigger MediaScanner

0

स्पष्ट रूप से एमटीपी में एक ज्ञात बग है।

Issue 195362 यूएसबी मास स्टोरेज के बजाय एमटीपी का उपयोग करने वाले सभी फोन यूएसबी केबल का उपयोग कर कंप्यूटर से कनेक्ट होने पर फ़ाइलों की सूची ठीक से नहीं दिखाते हैं। डिवाइस पर चल रहे एंड्रॉइड ऐप्स भी इन फाइलों को नहीं देख सकते हैं।

यह वास्तव में पुराना है जितना 2012

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