दिलचस्प पोस्ट
1. # INF00, -1 # इंडैंड और -1। क्या मतलब है? सरल Jasperreport jrxml के साथ भी खाली पीडीएफ Google मानचित्र सटीक एक ही स्थान के साथ कई मार्कर काम नहीं कर रहे हैं उद्देश्य- c में @ प्रतीक क्या दर्शाता है? क्वेरीज़ बनाम फ़िल्टर 'If' स्टेटमेंट के अंत में अर्धविराम getElementsByClassName काम नहीं कर रहा है मैं PowerShell में एक सीएसवी फ़ाइल से एक लाइन के माध्यम से कैसे लूप करूँ? प्रतिस्थापित करना & nbsp; जावास्क्रिप्ट डोम टेक्स्ट नोड से टेक्स्टरेआ में पेज पर चुने हुए टेक्स्ट को डालें (jQuery) क्यों #include <stdio.h> को printf () का उपयोग करने की आवश्यकता नहीं है? यूनिकोड स्वरूपित स्ट्रिंग्स से विराम चिह्न निकालें अजगर इंडेंटेशन को ठीक कैसे करें सी मानक द्वारा समर्थित प्लेटफार्मों की सूची सी ++ 11 रिटर्न मूल्य अनुकूलन या कदम?

एंड्रॉइड: आशय के माध्यम से एक विशिष्ट फ़ोल्डर कैसे खोलें और फ़ाइल ब्राउज़र में इसकी सामग्री दिखाएं?

मैंने सोचा यह आसान होगा, लेकिन जैसा कि यह पता चला है दुर्भाग्य से यह नहीं है।

जो मेरे पास है:

मेरे पास मेरे बाह्य भंडारण पर "myFolder" नामक एक फ़ोल्डर है (एसडी कार्ड नहीं है क्योंकि यह एक नेक्सस 4 है, लेकिन यह समस्या नहीं होनी चाहिए)। फ़ोल्डर में कुछ *.csv फ़ाइलें हैं

मैं क्या चाहता हूँ:

मैं एक विधि लिखना चाहता हूं जो निम्न करता है: विभिन्न ऐप (फ़ाइल ब्राउज़र) दिखाएं, जिसमें से मैं एक चुन सकता हूं (चित्र देखें)। उस पर क्लिक करने के बाद, चयनित फ़ाइल ब्राउज़र को शुरू करना चाहिए और मुझे "myFolder" की सामग्री दिखाई देनी चाहिए न आधिक न कम।

यहां छवि विवरण दर्ज करें

मेरा प्रश्न:

मैं ऐसा कैसे करूँ? मुझे लगता है कि मैं निम्नलिखित कोड के साथ बहुत करीब आया हूं, लेकिन मैं जो कुछ भी करता हूं – और मुझे यकीन है कि मुझे अभी तक कुछ नहीं मिला है – यह हमेशा बाह्य भंडार से मुख्य फ़ोल्डर खोलता है

 public void openFolder() { File file = new File(Environment.getExternalStorageDirectory(), "myFolder"); Log.d("path", file.toString()); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setDataAndType(Uri.fromFile(file), "*/*"); startActivity(intent); } 

Solutions Collecting From Web of "एंड्रॉइड: आशय के माध्यम से एक विशिष्ट फ़ोल्डर कैसे खोलें और फ़ाइल ब्राउज़र में इसकी सामग्री दिखाएं?"

यह काम करना चाहिए:

 Uri selectedUri = Uri.parse(Environment.getExternalStorageDirectory() + "/myFolder/"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(selectedUri, "resource/folder"); if (intent.resolveActivityInfo(getPackageManager(), 0) != null) { startActivity(intent); } else { // if you reach this place, it means there is no any file // explorer app installed on your device } 

कृपया, सुनिश्चित करें कि आपके डिवाइस पर कोई भी फ़ाइल एक्सप्लोरर इंस्टॉल किया गया है।

संपादित करें: टिप्पणी से शंतनु की सिफारिश को जोड़ा।

आखिरकार मुझे यह काम करना पड़ा। इस तरह केवल कुछ ऐप चयनकर्ता (Google ड्राइव, ड्रॉपबॉक्स, रूट एक्सप्लोरर, और ठोस एक्सप्लोरर) द्वारा दिखाए जाते हैं। यह दो खोजकर्ताओं के साथ ठीक काम कर रहा है, लेकिन Google ड्राइव और ड्रॉपबॉक्स के साथ नहीं (मुझे लगता है क्योंकि वे बाह्य भंडारण तक नहीं पहुंच सकते हैं)। अन्य माइम प्रकार जैसे "*/*" भी संभव है।

 public void openFolder(){ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + File.separator + "myFolder" + File.separator); intent.setDataAndType(uri, "text/csv"); startActivity(Intent.createChooser(intent, "Open folder")); } 
 Intent chooser = new Intent(Intent.ACTION_GET_CONTENT); Uri uri = Uri.parse(Environment.getDownloadCacheDirectory().getPath().toString()); chooser.addCategory(Intent.CATEGORY_OPENABLE); chooser.setDataAndType(uri, "*/*"); // startActivity(chooser); try { startActivityForResult(chooser, SELECT_FILE); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(this, "Please install a File Manager.", Toast.LENGTH_SHORT).show(); } 

उपरोक्त कोड में, यदि setDataAndType "* / *" कोई भी फ़ाइल चुनने के लिए एक निर्मित फ़ाइल ब्राउज़र खोला जाता है, तो अगर मैं "टेक्स्ट / सादा" ड्रॉपबॉक्स खोलता हूं मेरे पास ड्रॉपबॉक्स, Google ड्राइव स्थापित है अगर मैं ड्रॉपबॉक्स की स्थापना रद्द करता हूं तो केवल "* / *" फ़ाइल ब्राउज़र खोलने के लिए काम करता है। यह एंड्रॉइड 4.4.2 है। मैं ड्रॉपबॉक्स से और गूगल ड्राइव के लिए getContentResolver () द्वारा डाउनलोड कर सकता हूं। OpenInputStream (data.getData ())।

यह कोड ओआई फ़ाइल प्रबंधक के साथ काम करेगा:

  File root = new File(Environment.getExternalStorageDirectory().getPath() + "/myFolder/"); Uri uri = Uri.fromFile(root); Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setData(uri); startActivityForResult(intent, 1); 

आप यहां OI फ़ाइल प्रबंधक प्राप्त कर सकते हैं: http://www.openintents.org/en/filemanager

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("text/csv"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), 0); } catch (android.content.ActivityNotFoundException ex) { ex.printStackTrace(); } 

तो आपको जवाब जोड़ने की जरूरत है

 public void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case 0: { //what you want to do //file = new File(uri.getPath()); } } } 

आप करीब लग रहे हैं

मैं इस तरह यूआरआई सेट करने का प्रयास करूंगा:

 String folderPath = Environment.getExternalStorageDirectory()+"/pathTo/folder"; Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); Uri myUri = Uri.parse(folderPath); intent.setDataAndType(myUri , "file/*"); startActivity(intent); 

लेकिन यह आपके द्वारा की गई कोशिशों से बहुत अलग नहीं है। अगर कुछ भी बदलता है तो हमें बताएं?

यह भी सुनिश्चित करें कि लक्षित फ़ोल्डर मौजूद है, और इसके परिणामस्वरूप उरी ऑब्जेक्ट को आशय से पहले भेजना है, यह संभव है कि हम क्या उम्मीद नहीं कर सकते।

 File temp = File.createTempFile("preview", ".png" ); String fullfileName= temp.getAbsolutePath(); final String fileName = Uri.parse(fullfileName) .getLastPathSegment(); final String filePath = fullfileName. substring(0,fullfileName.lastIndexOf(File.separator)); Log.d("filePath", "filePath: " + filePath); 

पूर्णफ़ाइलनाम :

/mnt/sdcard/Download_Manager_Farsi/preview.png

filePath :

/ Mnt / sdcard / Download_Manager_Farsi