2010-02-01 5 views
13

कुछ छवि फ़ाइलें हैं, और मैं इन छवि फ़ाइलों में उरी प्राप्त करना चाहता हूं। मेरे कोड में, मुझे केवल छवि फ़ाइलों का पथ और फ़ाइल नाम पता है। मैं उरी को अपने पथ और फ़ाइल नाम से कैसे प्राप्त कर सकता हूं?क्या मुझे छवि फ़ाइल के उरी को इसके नाम से मिल सकता है?

उत्तर

42

आप एक File है, तो आप हमेशा यह एक URI में कन्वर्ट कर सकते हैं:

File file = new File(path + File.pathSeparator + filename); 
URI uri = file.toURI(); 

या, आप एंड्रॉयड उरी वर्ग उपयोग करना चाहते हैं:

Uri uri = Uri.fromFile(file); 
+0

धन्यवाद। असल में, मैं उरी को यूआरआई नहीं ढूंढ रहा हूं, लेकिन वे लगभग समान हैं, इसलिए मुझे समाधान मिल सकता है। – skysign

+0

आह, मुझे नहीं पता था कि आप एंड्रॉइड विशिष्ट उरी कक्षा का मतलब है। मैंने अपना उत्तर भी इसमें शामिल करने के लिए अपडेट किया है। –

+0

उत्तर के अपडेट के लिए धन्यवाद। – skysign

2

मैं के लिए एक ही प्रश्न था मेरी फाइल एक्सप्लोरर गतिविधि ... लेकिन आपको फाइल के लिए कंटेंटरी को क्यूव करना चाहिए, केवल छवि, ऑडियो और वीडियो जैसे मध्यस्थ डेटा का समर्थन करता है .... मैं आपको छवि सामग्री यूरी को एसडीकार्ड से एक छवि चुनने के लिए दे रहा हूं .... इस कोड को आजमाएं ... हो सकता है कि यह आपके लिए काम करेगा ...

public static Uri getImageContentUri(Context context, File imageFile) { 
     String filePath = imageFile.getAbsolutePath(); 
     Cursor cursor = context.getContentResolver().query(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       new String[] { MediaStore.Images.Media._ID }, 
       MediaStore.Images.Media.DATA + "=? ", 
       new String[] { filePath }, null); 
     if (cursor != null && cursor.moveToFirst()) { 
      int id = cursor.getInt(cursor 
        .getColumnIndex(MediaStore.MediaColumns._ID)); 
      Uri baseUri = Uri.parse("content://media/external/images/media"); 
      return Uri.withAppendedPath(baseUri, "" + id); 
     } else { 
      if (imageFile.exists()) { 
       ContentValues values = new ContentValues(); 
       values.put(MediaStore.Images.Media.DATA, filePath); 
       return context.getContentResolver().insert(
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
      } else { 
       return null; 
      } 
     } 
    } 
संबंधित मुद्दे