نمایش نتایج 1 تا 3 از 3

نام تاپیک: بررسی تعداد درایوها و وجود فایل با تایمر - خوب یا بد ؟

  1. #1
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    Question بررسی تعداد درایوها و وجود فایل با تایمر - خوب یا بد ؟

    من برنامه ای نوشتم که در اون تعداد درایو ها رو نیاز دارم
    همچنین عدم وجود یا وجود چند تا فایل ؟
    برای اینکار من یک تایمر گذاشتم که با دوره های یک ثانیه ای اقدام به بررسی تعداد درایو و وجود فایل می کنه
    البته اینکار در سرعت برنامه و کامپیوتر تا اونجایی که من امتحان کردم نداره ( کامپیوتر من خیلی قدیمی رم 256 و هارد 40 IDE ) می خواستم ببینم آیا این کار باعث آسیب رساندن به کامپیوتر هم میشه

    و در Borland C++‎Builder 2009 چه روش دیگری برای اینکار وجود داره ؟

  2. #2

    Cool نقل قول: بررسی تعداد درایوها و وجود فایل با تایمر - خوب یا بد ؟

    خوب دوست من ساده ترین را استفاده از تابع زیر که باید با یه دستورfor از A تا Z را بررسی کنی اگر صفر برگردوند اون وقت درایو مورد نظر وجود نداره...
    GetDriveType(String DriveLetter)
    که البته نوع درایو را هم نشون میده یعنی مثلا سی دی , فلش‏،‏هارد درایو و...
    که اطلاعات بیشتر خواستی بگو
    برای جلوگیری از کاهش سرعت هم از دستور sleep استفاده که وقفه زمانی ایجاد میکنه:
    Sleep(int Delay)

    ولی راه اصولی تری هم وجود داره و اون استفاده از تابع GetLogicalDrives که عددی را بر می گردونه که هر بیتش نشونه وجود یه درایو مثلا کوچکترین بیت وجود درایو A و به همین ترتیب تا Z
    هر بیتی که یک باشه یعنی اون درایو وجود داره
    GetLogicalDrives()

    کمکی خواستی بگو
    ایمل بنده:TNT8800@GMAIL.COM

  3. #3

    نقل قول: بررسی تعداد درایوها و وجود فایل با تایمر - خوب یا بد ؟

    دوست عزیز داشتم توی کد یه برنامه چرخ میزدم که تابعی به نام GetLogicalDriveStringsA برخودم و کمی باهاش ور رفتم تا بهترین روش را برای کاری که شما می خواهید انجام دهید را پیدا کنم به مد زیر توجه کنید:

    byte N=GetLogicalDriveStringsA(52,(char*)new char[52])/4;
    ShowMessage(N);


    N در عبارت بالا نشان دهنده تعداد دریو هاست.

    توضیح بیشتر:
    تابع

    DWORD GetLogicalDriveStrings(DWORD nBufferLength, char* lpBuffer);

    میتونه نام درایو های موجود را به صورت رشته ای متصل به هم بر میگردونه.
    متغییر اول طول رشته ای که باید تو متغیر دوم(که از نوع Pointer است)نوشته بشه.
    متغییر دوم یک pointer است که باید رشته حاوی نام درایو ها است که هر دریوا ۴ کاراکتر را اشغال میکنه
    (مثل:‏A:\0)که منظور از "0\" یک کاراکتر خالی است دقت کنید مقدار ان صفر است که در پایان رشته ها وجود دارد.
    مقدار بازگشتی مقداری عددی است که طول رشت که در متغییر دوم نوشته شده را نشان میدهد.

    امید وارم موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •