यहां पढ़ने के लिए एक समाधान है - लेखन नहीं - इस पृष्ठ पर मुझे जो कुछ मिला है, उसके आधार पर विस्तारित गुण और शेल 32 ऑब्जेक्ट्स की मदद से ।
स्पष्ट होने के लिए यह एक हैक है। ऐसा लगता है कि यह कोड अभी भी विंडोज 10 पर चलेगा, लेकिन कुछ खाली गुणों पर हिट करेगा। Windows के पिछले संस्करण का उपयोग करना चाहिए:
var i = 0;
while (true)
{
...
if (String.IsNullOrEmpty(header)) break;
...
i++;
विंडोज 10 पर हम मानते हैं कि लगभग 320 संपत्तियां पढ़ने के लिए हैं और बस खाली प्रविष्टियों को छोड़ दें:
private Dictionary<string, string> GetExtendedProperties(string filePath)
{
var directory = Path.GetDirectoryName(filePath);
var shell = new Shell32.Shell();
var shellFolder = shell.NameSpace(directory);
var fileName = Path.GetFileName(filePath);
var folderitem = shellFolder.ParseName(fileName);
var dictionary = new Dictionary<string, string>();
var i = -1;
while (++i < 320)
{
var header = shellFolder.GetDetailsOf(null, i);
if (String.IsNullOrEmpty(header)) continue;
var value = shellFolder.GetDetailsOf(folderitem, i);
if (!dictionary.ContainsKey(header)) dictionary.Add(header, value);
Console.WriteLine(header +": " + value);
}
Marshal.ReleaseComObject(shell);
Marshal.ReleaseComObject(shellFolder);
return dictionary;
}
जैसा कि उल्लेख किया गया है कि आपको कॉम असेंबली Interop.Shell32 का संदर्भ देना होगा।
यदि आपको एसटीए से संबंधित अपवाद मिलता है, तो आपको इसका समाधान मिलेगा:
फ़ाइल विस्तारित गुण प्राप्त करने के लिए Shell32 का उपयोग करते समय अपवाद
मुझे पता नहीं है कि उन संपत्तियों के नाम एक विदेशी प्रणाली पर क्या होंगे और इस बारे में जानकारी नहीं मिल सकती है कि शब्द का उपयोग करने के लिए किस स्थानीय स्थिरांक का उपयोग करना है। मैंने यह भी पाया कि गुण संवाद से सभी गुण वापस आए शब्दकोश में मौजूद नहीं थे।
BTW यह बहुत धीमा है और - विंडोज 10 पर कम से कम - स्ट्रिंग में प्राप्त तारीखों को पार्स करना एक चुनौती होगी, इसलिए इसका उपयोग करना शुरू करने के लिए एक बुरा विचार प्रतीत होता है।
विंडोज 10 पर आपको Windows.Storage लाइब्रेरी का उपयोग जरूर करना चाहिए जिसमें SystemPhotoProperties, SystemMusicProperties आदि
https://docs.microsoft.com/en-us/windows/uwp/files/quickstart-getting-file-properties शामिल हैं।
और अंत में, मैंने एक बहुत बेहतर समाधान पोस्ट किया है जो वहां विंडोजएपिकोडपैक का उपयोग करता है