سؤال

لدي متصفح ملفات بسيط وهناك أقوم بعرض الملفات والمجلدات،

تم الحصول عليها بواسطة (للدليل)

SHFILEINFO info = new SHFILEINFO();
SHGetFileInfo(filename,
FILE_ATTRIBUTE_DIRECTORY,
ref info,Marshal.SizeOf(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON | SHGFI_ADDOVERLAYS);

إنه يعمل بشكل جيد بنسبة 100 ٪ ، لكنني لاحظت غرابة - إذا حاولت الحصول على أيقونة للدليل ، ولكن حدد file_attribute_normal بدلاً من file_attribute_directory ولكنها تقوم بأشياء غريبة للدليل - المجلدات العادية لها أيقونات "غير معروفة من نوع الملف الأبيض" ، إعادة التدوير Bin لديه أيقونة VLC ، إلخ.تحتوي الدلائل ضمن SVN على تراكب مناسب، ولكن رمز الملف الأساسي (ورقة بيضاء).

أدرك أن الرمز الأساسي للدليل سيكون الآن رمز ملف غير معروف، ولكن لماذا تحتوي بعض المجلدات على رمز غريب تمامًا؟يحتوي Config.MSI على رمز التثبيت، بينما تحتوي سلة المحذوفات على رمز VLC (wtf؟!)، وما إلى ذلك.ماذا تفعل وظيفة الصدفة بهذه المعلمات؟ما هو الرمز الذي يحصل عليه بالضبط؟

مرة أخرى، هذه ليست مشكلة، أنا فقط فضولي.

هل كانت مفيدة؟

المحلول

بقدر ما أعرف، يتم الوصول إلى موارد الأيقونة من خلال فهرسها الرقمي، لذلك أعتقد أنه تم جلب الفهرس الصحيح، ثم يتم جلب الأيقونة إما من المكتبة الخاطئة، أو من المكتبة الصحيحة ولكن باستخدام إزاحة خاطئة + فهرس صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top