تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 9 از 9

نام تاپيک: گرفتن آیکن یک پوشه و فایل

  1. #1
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض گرفتن آیکن یک پوشه و فایل

    سلام چگونه آیکن پوشه ای که آدرسش رو دارم پیدا کنم؟
    و همچنین چگونه آِکن یک نوع فایل مقل TXT رو پیدا کنم؟
    ممنو

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اگر فایل شما واقعاً در هارد و مسیر مشخص شده وجود دارد میتوانید از متد 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 تبدیل کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موفق باشید.
    Last edited by _H2_; 04-11-2009 at 15:20.

  3. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  4. #3
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    مرسي توضيحات خيلي كامل بود
    براي پوشه چي
    چون آيكون پوشه ها رو كاربر مي تونه عوض كنه
    چطوري مي تونم آيكن يك پوشه رو در بيارم؟
    مرسي

  5. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    آیکون یک پوشه موجود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    آیکون یک درایو موجود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر احتمالاً در فکر یک Explorer کامل و نمایش لیستی و درختی و... فایلها هستید، گمانم راه حلهای ساده تری هم وجود داشته باشد.

  6. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  7. #5
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    در فکرش هستم
    ولی نه اینکه بخوام از کامپونت استفاده کنم
    می خوام از treeview و listview و fileio و ... استفاده کنم
    در حقیقت پروژه دانشگاست و همچنین خودمم می خوام یاد بگیرم

    فقط یک مشکل بزرگ دارم
    برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
    چطوری explorer ویندوز اینقدر سریع انجام میده
    اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
    ضمنا واسه کمکات هم ممنون

  8. #6
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    این لینکهایی که دادی رو نمی تونم دانلود کنم
    میشه همین DLL رو تو رپیدشیر بزاری
    مرسی

  9. #7
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برای لیست کردن درایو ها و پوشه ها تا بخوام همه رو بگردم و لیست کنم یک 5 دقیقه ای طول می کشه
    چطوری explorer ویندوز اینقدر سریع انجام میده
    فهمیدم چه کار کردید!
    5 دقیقه که خوبه! شانس آوردید 50 دقیقه طول نمیکشه!

    مشکل شما این است که در زمان بالا آمدن برنامه کل درخت را در همان لحظه پر میکنید ...
    ولی این کار صحیحی نیست!
    در واقع روش صحیح آن است که تا همانجا که در دید است و یا حداقل یک لایه بعد از آن پر شود، نه بیشتر.

    یعنی شما در اول کار درایوها را به درخت اضافه میکنید ...
    (فوق فوقش فایلها و پوشه های داخل درایو ها را هم اضافه میکنید ...)
    و تمام!

    بعد وقتی کاربر درایو C را کلیک میکند تا باز شود ...
    تازه در این لحظه یک پله جلو تر میروید و فایل و پوشه های داخل مسیر مذکور را پر می کنید.
    و...

    هر شاخه زمانی پر میشود که اولاً قبلاً پر نشده باشد و دوماً expand شده باشد.

    اگر حوصله کمک داری سورس رو آپلود کنم تا الگریتممو ببینی
    اگر مورد فوق را رعایت کنیدف گمانم مشکلتان حل شود و نیازی به این کار نباشد.

    این لینکهایی که دادی رو نمی تونم دانلود کنم
    این لینک های مستقیم از سایت خودم است، در شرایط مختلف و رایانه های مختلف کار کردم و مشکلی نداشتند!
    و فقط چند هفته قبلی دوستی چیزی مشابه شما میگفت و حالا هم شما میگید که مشکلی وجود دارد!!!!
    میتونم بپرسم سیستم عامل و مرورگر و نسخه مروگرتان چیست؟
    از برنامه های کمکی دانلود استفاده میکنید؟ نام و نسخه اش چیست؟
    شاید به خاطر این باشد که //:http را وارد نکرده ام!

    این جفت لینکهای زیر معادل هم هستند، لطفاً روی لینک های دومی تستی کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موفق باشید.

  10. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  11. #8
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    دستت درد نكنه
    لينكا رو كه با IDM دانلود كردم شد
    در مورد اين كاري هم گفتي خودمم بهش فكر كردم ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم
    ولي اينجور كه ميگي فكر كنم تنها راهش همين باشه
    برم يكم فسفر بسوزونم ببينم آخرش چي ميشه

  12. #9
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ... ولي زورم اومد دوباره درباره يك الگريتم ديگه فكر كنم ...
    گمانم قبلاً من هم همچین حالاتی داشتم.
    آی جوانی کجایی ... !

    =====

    یک مطلب دیگر را هم اضافه کنم بد نیست.
    مجدد تاکید میکنم که شما اگر از روش گفته شده (پر کردن شاخه در زمان رویت) استفاده کنید، مشکل سرعتتان رفع خواهد شد.

    =====

    ولی اصولاً الگوریتم دات نت برای سرچ فایلها چندان بهینه نیست و با الگوریتم بهتر میتوان کدی برای سرچ فایلها و پوشه ها نوشت که حداقل 50 الی 200 برابر سریعتر از الگوریتم فعلی دات نت عمل کند!!!
    من الگوریتم فوق الذکر را برای خودم در همان ghnet.dll پیاده سازی کردم و در پروزه ای که نیاز به اسکن حجم تعدادی خیلی زیادی از فایلها داشت با موفقیت استفاده کردم.

    سرعتش فوق العاده است ولی این لزوماً به این معنی نیست که برنامه نهایی هم 50 تا 200 برابر سریعتر میشود.
    چون درهر صورت شما خودتان هم کدی و عملیاتی دارید که روی نتیجه سرچ انجام میدهید (مثلاً اضافه کردن انها به کنترلر شاخه درختی و یا ثبت انها در دیتابیس و یا ...) و این بخش کدهای شما فرقی نمیکند و ثابت میماند.

    سمپل این مطلب را میتوانید از لینک های زیر دانلود کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    توضیحات مختصری هم در مورد این کلاس و امکانات و کد مربوط در آدرس زیر ارائه شده:
    persianscience.ir/showthread.php?t=641&page=3

    =====

    راستی، طبق مطالبی که در اینترنت مطالعه کردم، مایکروسافت مشکل مذکور را (مشکل که نمیشود گفت! شاید الگوریتم بد!) در Framework4.0 و VS2010 اصلاح کرده و متدهای جدیدی که از الگوریتم پرسرعت استفاده میکنند اضافه کرده.

    =====

    موفق باشید.

  13. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •