مشاهده نسخه کامل
: گرفتن آیکن یک پوشه و فایل
بهرام_62
04-11-2009, 01:24
سلام چگونه آیکن پوشه ای که آدرسش رو دارم پیدا کنم؟
و همچنین چگونه آِکن یک نوع فایل مقل TXT رو پیدا کنم؟
ممنو:10:
سلام
اگر فایل شما واقعاً در هارد و مسیر مشخص شده وجود دارد میتوانید از متد ExtractAssociatedIcon استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
==============
ولی اگر فایل شما واقعاً در هارد نیست و شما صرفاً میخواهید آیکون فایلهای txt را بدست اورید (بدون اینکه فایلی در هارد داشته باشید) پیشنهاد میکنم از ghnet.dll استفاده کنید.
این dll متدی با نام GetIcon دارد که میتواند مثل متد بالا با مسیر و یا با پسوند آیکون فایل را باز گرداند.
ضمن اینکه میتواند آیکون های جداگانه ای برای حالت Hidden و Normal و Select و... برگرداند.
و نیز میتواند آیکون بزرگ و کوچک و... را هم جداگانه برگرداند.
کد نمونه برگردادن آیکون Normal و کوچک فایلی که وجود دارد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد نمونه برگرداندن آیکون Normal و بزرگ فایلی که واقعاً وجود ندارد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای استفاده از dll فوق کافی است ان را در شاخه bin پروزه کپی کنید و با پیگیری فرمان زیر آن را به پروزه خود اضافه کنید:
Project->Add Reference->Browse->OK
پکهای زیر ربطی به سوال شما ندارند ولی میتوانید آخرین نسخه Nov2009 این dll را در شاخه bin یکی از این سمپل ها دانلود و پیدا کنید:
support.h02.ir/fwlink/?LinkId=1005350577
support.h02.ir/fwlink/?LinkId=1001372507
support.h02.ir/fwlink/?LinkId=1006193017
support.h02.ir/fwlink/?LinkId=1002435777
support.h02.ir/fwlink/?LinkId=1005415457
و...
==============
ضمناً در خیلی از موارد شی System.Drawing.Icon را نمیتوانید استفاده کنید (مثلاً در یک PictureBox) نتیجتاً کافی است تا با متد ToBitmap این شی را به یک System.Drawing.Bitmap تبدیل کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
بهرام_62
05-11-2009, 10:44
مرسي توضيحات خيلي كامل بود
براي پوشه چي
چون آيكون پوشه ها رو كاربر مي تونه عوض كنه
چطوري مي تونم آيكن يك پوشه رو در بيارم؟
مرسي
سلام
آیکون یک پوشه موجود:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
آیکون یک درایو موجود:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر احتمالاً در فکر یک Explorer کامل و نمایش لیستی و درختی و... فایلها هستید، گمانم راه حلهای ساده تری هم وجود داشته باشد.
بهرام_62
06-11-2009, 19:40
در فکرش هستم
ولی نه اینکه بخوام از کامپونت استفاده کنم
می خوام از treeview و listview و fileio و ... استفاده کنم
در حقیقت پروژه دانشگاست و همچنین خودمم می خوام یاد بگیرم
فقط یک مشکل بزرگ دارم
برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
چطوری explorer ویندوز اینقدر سریع انجام میده
اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
ضمنا واسه کمکات هم ممنون:10:
بهرام_62
06-11-2009, 19:49
این لینکهایی که دادی رو نمی تونم دانلود کنم
میشه همین DLL رو تو رپیدشیر بزاری
مرسی
سلام
برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
چطوری explorer ویندوز اینقدر سریع انجام میده
فهمیدم چه کار کردید!
5 دقیقه که خوبه! شانس آوردید 50 دقیقه طول نمیکشه!
مشکل شما این است که در زمان بالا آمدن برنامه کل درخت را در همان لحظه پر میکنید ...
ولی این کار صحیحی نیست!
در واقع روش صحیح آن است که تا همانجا که در دید است و یا حداقل یک لایه بعد از آن پر شود، نه بیشتر.
یعنی شما در اول کار درایوها را به درخت اضافه میکنید ...
(فوق فوقش فایلها و پوشه های داخل درایو ها را هم اضافه میکنید ...)
و تمام!
بعد وقتی کاربر درایو C را کلیک میکند تا باز شود ...
تازه در این لحظه یک پله جلو تر میروید و فایل و پوشه های داخل مسیر مذکور را پر می کنید.
و...
هر شاخه زمانی پر میشود که اولاً قبلاً پر نشده باشد و دوماً expand شده باشد.
اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
اگر مورد فوق را رعایت کنیدف گمانم مشکلتان حل شود و نیازی به این کار نباشد.
این لینکهایی که دادی رو نمی تونم دانلود کنم
این لینک های مستقیم از سایت خودم است، در شرایط مختلف و رایانه های مختلف کار کردم و مشکلی نداشتند!
و فقط چند هفته قبلی دوستی چیزی مشابه شما میگفت و حالا هم شما میگید که مشکلی وجود دارد!!!!
میتونم بپرسم سیستم عامل و مرورگر و نسخه مروگرتان چیست؟
از برنامه های کمکی دانلود استفاده میکنید؟ نام و نسخه اش چیست؟
شاید به خاطر این باشد که //:http را وارد نکرده ام!
این جفت لینکهای زیر معادل هم هستند، لطفاً روی لینک های دومی تستی کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
بهرام_62
09-11-2009, 19:55
دستت درد نكنه
لينكا رو كه با IDM دانلود كردم شد
در مورد اين كاري هم گفتي خودمم بهش فكر كردم ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم :27:
ولي اينجور كه ميگي فكر كنم تنها راهش همين باشه
برم يكم فسفر بسوزونم ببينم آخرش چي ميشه:10:
سلام
... ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم ...
گمانم قبلاً من هم همچین حالاتی داشتم.
آی جوانی کجایی ... ! :31:
=====
یک مطلب دیگر را هم اضافه کنم بد نیست.
مجدد تاکید میکنم که شما اگر از روش گفته شده (پر کردن شاخه در زمان رویت) استفاده کنید، مشکل سرعتتان رفع خواهد شد.
=====
ولی اصولاً الگوریتم دات نت برای سرچ فایلها چندان بهینه نیست و با الگوریتم بهتر میتوان کدی برای سرچ فایلها و پوشه ها نوشت که حداقل 50 الی 200 برابر سریعتر از الگوریتم فعلی دات نت عمل کند!!!
من الگوریتم فوق الذکر را برای خودم در همان ghnet.dll پیاده سازی کردم و در پروزه ای که نیاز به اسکن حجم تعدادی خیلی زیادی از فایلها داشت با موفقیت استفاده کردم.
سرعتش فوق العاده است ولی این لزوماً به این معنی نیست که برنامه نهایی هم 50 تا 200 برابر سریعتر میشود.
چون درهر صورت شما خودتان هم کدی و عملیاتی دارید که روی نتیجه سرچ انجام میدهید (مثلاً اضافه کردن انها به کنترلر شاخه درختی و یا ثبت انها در دیتابیس و یا ...) و این بخش کدهای شما فرقی نمیکند و ثابت میماند.
سمپل این مطلب را میتوانید از لینک های زیر دانلود کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توضیحات مختصری هم در مورد این کلاس و امکانات و کد مربوط در آدرس زیر ارائه شده:
persianscience.ir/showthread.php?t=641&page=3
=====
راستی، طبق مطالبی که در اینترنت مطالعه کردم، مایکروسافت مشکل مذکور را (مشکل که نمیشود گفت! شاید الگوریتم بد!) در Framework4.0 و VS2010 اصلاح کرده و متدهای جدیدی که از الگوریتم پرسرعت استفاده میکنند اضافه کرده.
=====
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.