سلام چگونه آیکن پوشه ای که آدرسش رو دارم پیدا کنم؟
و همچنین چگونه آِکن یک نوع فایل مقل TXT رو پیدا کنم؟
ممنو:10:
Printable View
سلام چگونه آیکن پوشه ای که آدرسش رو دارم پیدا کنم؟
و همچنین چگونه آِکن یک نوع فایل مقل TXT رو پیدا کنم؟
ممنو:10:
سلام
اگر فایل شما واقعاً در هارد و مسیر مشخص شده وجود دارد میتوانید از متد ExtractAssociatedIcon استفاده کنید:
==============کد:Dim icon1 As System.Drawing.Icon = System.Drawing.Icon.ExtractAssociatedIcon("C:\file.txt")
ولی اگر فایل شما واقعاً در هارد نیست و شما صرفاً میخواهید آیکون فایلهای txt را بدست اورید (بدون اینکه فایلی در هارد داشته باشید) پیشنهاد میکنم از ghnet.dll استفاده کنید.
این dll متدی با نام GetIcon دارد که میتواند مثل متد بالا با مسیر و یا با پسوند آیکون فایل را باز گرداند.
ضمن اینکه میتواند آیکون های جداگانه ای برای حالت Hidden و Normal و Select و... برگرداند.
و نیز میتواند آیکون بزرگ و کوچک و... را هم جداگانه برگرداند.
کد نمونه برگردادن آیکون Normal و کوچک فایلی که وجود دارد:
کد نمونه برگرداندن آیکون Normal و بزرگ فایلی که واقعاً وجود ندارد:کد:Dim icon2 As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:\file.txt", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Small)
برای استفاده از dll فوق کافی است ان را در شاخه bin پروزه کپی کنید و با پیگیری فرمان زیر آن را به پروزه خود اضافه کنید:کد:Dim icon3 As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:\~123~.txt", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large Or GHNet.IO.IconType.Extension)
یا
Dim icon4 As System.Drawing.Icon = GHNet.IO.Shell.GetIcon(".txt", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large Or GHNet.IO.IconType.Extension)
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 تبدیل کنید:
موفق باشید.کد:Dim ico As System.Drawing.Icon = ...
Dim bmp As System.Drawing.Bitmap = ico.ToBitmap()
مرسي توضيحات خيلي كامل بود
براي پوشه چي
چون آيكون پوشه ها رو كاربر مي تونه عوض كنه
چطوري مي تونم آيكن يك پوشه رو در بيارم؟
مرسي
سلام
آیکون یک پوشه موجود:
آیکون یک درایو موجود:کد:Dim ico As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:\Windows\Fonts", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large)
یا
Dim ico As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:\Windows\Fonts\", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large)
اگر احتمالاً در فکر یک Explorer کامل و نمایش لیستی و درختی و... فایلها هستید، گمانم راه حلهای ساده تری هم وجود داشته باشد.کد:Dim ico As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large)
یا
Dim ico As System.Drawing.Icon = GHNet.IO.Shell.GetIcon("C:\", System.IO.FileAttributes.Normal, GHNet.IO.IconType.Large)
در فکرش هستم
ولی نه اینکه بخوام از کامپونت استفاده کنم
می خوام از treeview و listview و fileio و ... استفاده کنم
در حقیقت پروژه دانشگاست و همچنین خودمم می خوام یاد بگیرم
فقط یک مشکل بزرگ دارم
برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
چطوری explorer ویندوز اینقدر سریع انجام میده
اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
ضمنا واسه کمکات هم ممنون:10:
این لینکهایی که دادی رو نمی تونم دانلود کنم
میشه همین DLL رو تو رپیدشیر بزاری
مرسی
سلام
فهمیدم چه کار کردید!نقل قول:
برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
چطوری explorer ویندوز اینقدر سریع انجام میده
5 دقیقه که خوبه! شانس آوردید 50 دقیقه طول نمیکشه!
مشکل شما این است که در زمان بالا آمدن برنامه کل درخت را در همان لحظه پر میکنید ...
ولی این کار صحیحی نیست!
در واقع روش صحیح آن است که تا همانجا که در دید است و یا حداقل یک لایه بعد از آن پر شود، نه بیشتر.
یعنی شما در اول کار درایوها را به درخت اضافه میکنید ...
(فوق فوقش فایلها و پوشه های داخل درایو ها را هم اضافه میکنید ...)
و تمام!
بعد وقتی کاربر درایو C را کلیک میکند تا باز شود ...
تازه در این لحظه یک پله جلو تر میروید و فایل و پوشه های داخل مسیر مذکور را پر می کنید.
و...
هر شاخه زمانی پر میشود که اولاً قبلاً پر نشده باشد و دوماً expand شده باشد.
اگر مورد فوق را رعایت کنیدف گمانم مشکلتان حل شود و نیازی به این کار نباشد.نقل قول:
اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
این لینک های مستقیم از سایت خودم است، در شرایط مختلف و رایانه های مختلف کار کردم و مشکلی نداشتند!نقل قول:
این لینکهایی که دادی رو نمی تونم دانلود کنم
و فقط چند هفته قبلی دوستی چیزی مشابه شما میگفت و حالا هم شما میگید که مشکلی وجود دارد!!!!
میتونم بپرسم سیستم عامل و مرورگر و نسخه مروگرتان چیست؟
از برنامه های کمکی دانلود استفاده میکنید؟ نام و نسخه اش چیست؟
شاید به خاطر این باشد که //:http را وارد نکرده ام!
این جفت لینکهای زیر معادل هم هستند، لطفاً روی لینک های دومی تستی کنید:
موفق باشید.کد:http://support.h02.ir/fwlink/?LinkId=1005350577
http://www.h02.ir/Downloads/?familyid=949035E5-0B8A-4D73-9C09-6CC121227F5B
http://support.h02.ir/fwlink/?LinkId=1001372507
http://www.h02.ir/Downloads/?familyid=4D79B75F-6A5E-4B96-AF98-6CDB77CAAA10
http://support.h02.ir/fwlink/?LinkId=1006193017
http://www.h02.ir/Downloads/?familyid=4CE3DBD5-0594-471E-9456-B152F0053A9D
http://support.h02.ir/fwlink/?LinkId=1002435777
http://www.h02.ir/Downloads/?familyid=8DA14880-7462-4C80-B7D1-DCAB0FF03888
http://support.h02.ir/fwlink/?LinkId=1005415457
http://www.h02.ir/Downloads/?familyid=9049718C-2BC4-48A4-AEA6-B13E2864E368
دستت درد نكنه
لينكا رو كه با IDM دانلود كردم شد
در مورد اين كاري هم گفتي خودمم بهش فكر كردم ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم :27:
ولي اينجور كه ميگي فكر كنم تنها راهش همين باشه
برم يكم فسفر بسوزونم ببينم آخرش چي ميشه:10:
سلام
گمانم قبلاً من هم همچین حالاتی داشتم.نقل قول:
... ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم ...
آی جوانی کجایی ... ! :31:
=====
یک مطلب دیگر را هم اضافه کنم بد نیست.
مجدد تاکید میکنم که شما اگر از روش گفته شده (پر کردن شاخه در زمان رویت) استفاده کنید، مشکل سرعتتان رفع خواهد شد.
=====
ولی اصولاً الگوریتم دات نت برای سرچ فایلها چندان بهینه نیست و با الگوریتم بهتر میتوان کدی برای سرچ فایلها و پوشه ها نوشت که حداقل 50 الی 200 برابر سریعتر از الگوریتم فعلی دات نت عمل کند!!!
من الگوریتم فوق الذکر را برای خودم در همان ghnet.dll پیاده سازی کردم و در پروزه ای که نیاز به اسکن حجم تعدادی خیلی زیادی از فایلها داشت با موفقیت استفاده کردم.
سرعتش فوق العاده است ولی این لزوماً به این معنی نیست که برنامه نهایی هم 50 تا 200 برابر سریعتر میشود.
چون درهر صورت شما خودتان هم کدی و عملیاتی دارید که روی نتیجه سرچ انجام میدهید (مثلاً اضافه کردن انها به کنترلر شاخه درختی و یا ثبت انها در دیتابیس و یا ...) و این بخش کدهای شما فرقی نمیکند و ثابت میماند.
سمپل این مطلب را میتوانید از لینک های زیر دانلود کنید:
توضیحات مختصری هم در مورد این کلاس و امکانات و کد مربوط در آدرس زیر ارائه شده:کد:http://support.h02.ir/fwlink/?LinkId=1006416547
http://www.h02.ir/Downloads/?familyid=BABD485E-25C6-4EAE-80E9-D167467CBD72
persianscience.ir/showthread.php?t=641&page=3
=====
راستی، طبق مطالبی که در اینترنت مطالعه کردم، مایکروسافت مشکل مذکور را (مشکل که نمیشود گفت! شاید الگوریتم بد!) در Framework4.0 و VS2010 اصلاح کرده و متدهای جدیدی که از الگوریتم پرسرعت استفاده میکنند اضافه کرده.
=====
موفق باشید.