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

نام تاپیک: استفاده از system.io.fileInfo یا API

  1. #1

    Cool استفاده از system.io.fileInfo یا API

    سلام

    برای دریافت اطلاعات فایل ها و فولدرها در یک مسیر خاص کدام روش بهینه وسریعتر هست، استفاده از کلاس System.IO.FileInfo یا توابع API

    لطفاً راهنمایی کنید و این که چطوری از برای اینکار از توابع API استفاده کنم

  2. #2

    نقل قول: استفاده از system.io.fileInfo یا API


  3. #3

    نقل قول: استفاده از system.io.fileInfo یا API

    ممنون عزیز اما سوال اصلی من هنوز سرجاش هست کدام روش بهتر و سرعت عمل بالاتری داره

  4. #4
    کاربر دائمی آواتار MSN_Issue
    تاریخ عضویت
    آبان 1388
    محل زندگی
    مشهدالرضا
    پست
    586

    نقل قول: استفاده از system.io.fileInfo یا API

    اگه اندکی با دلفی آشنایی داشته باشید میتونید از این تاپیک استفاده کنید ...

  5. #5

    نقل قول: استفاده از system.io.fileInfo یا API

    نقل قول نوشته شده توسط احمد سامعی مشاهده تاپیک
    سلام برای دریافت اطلاعات فایل ها و فولدرها در یک مسیر خاص کدام روش بهینه وسریعتر هست، استفاده از کلاس System.IO.FileInfo یا توابع API لطفاً راهنمایی کنید و این که چطوری از برای اینکار از توابع API استفاده کنم
    سلام.
    ببینید. شما وقتی باید برید سراغ Win32 API ها که BCL ساز و کاری براش نداشته باشه یا کاری که میخواهید انجام بدید Performance Critical باشه (که در اینصورت این سوال پیش میاد که چرا اصلا کد Managed باید بنویسیم؟).

    اما در سوال شما یه نکته ای نهفته هستش، اونم Enumerate کردن فایلهای داخل یک Folder. تا قبل از .NET 4.0 شما باید از System.IO.Directory.GetFiles استفاده میکردید. این متود، به شما آرایه ای از string برمیگردوند و به گونه ای پیاده سازی شده بود که اگر شما نیاز به گرفتن چند فایل از خروارها فایل در اون Directory رو داشتید، باز هم مجبور بودید صبر کنید تا کلیه فایلها توسط این متود Enumerate بشه.

    خوشبختانه در .NET 4.0 با معرفی متود EnumerateFiles این مشکل رفع شده. اما اگر شما از .NET 4.0 استفاده نمیکنید، میتونید به مقاله ای که Tom Shelton نوشته مراجعه کنید و همینکارو در .NET های نسخه قبلی بکمک Win32 API ها انجام بدید (البته اگر شرایط اجرایی شما چنین چیزی رو طلب میکنه، و الا اگر نیاز دارید کلیه فایلهای درون Folder رو بگیرید، استفاده از همون GetFiles کفایت میکنه).

    جمع بندی: اگر نقصانی در BCL هستش یا چیزی در BCL بد پیاده سازی شده، اونوقت سراغ Win32 API ها رفتن معنا پیدا میکنه. در غیر اینصورت، اولویت اول استفاده از BCL باید باشه.

    موفق باشید.

  6. #6

    نقل قول: استفاده از system.io.fileInfo یا API

    سلام
    ممنون استاد موسوی
    برنامه من کار با عکس هست و برای عکاسان نوشته می شه . برنالمه تغییر سایز عکس به صورت گروهی هست. البته احتمال اینکه که یک عکاس فایلی غیر عکس قاطی عکس هاش کنه اون هم به تعداد زیاد بعید هست چون خودم هم عکاسم در نتیجه فقط می مونه فیلتر کردن فرمت های مختلف که قطعاً استفاده از GetFiles چون خودش می تونه فیلتر هم بکنه بهتر به نظر می رسه
    در ضمن من از Net 4 یا همون VS 2010 استفاده می کنم مشکلی ندارم که به خوام از EnumerateFiles استفاده کنم اما چون تازه یک هفته 2010 نصب کردم خیلی از امکانات جدید نمی دونم باید بیشتر مطالعه کنم و در رابطه با EnumerateFiles هم بخونم که چطوری کار می کنه این توضیحات دادم تا شما راهنمایی کنید
    من توضیحات لینک اول شما در MSDN خوندم به نظرم باید از همون EnumerateFiles استفاده کنم
    چون من یک کنترل Browser دارم که مشابه سازی windows Explorer هست که برای دریافت اطلاعات از API استفاده کرده و سرعت خوبی داره

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

    یک سوال فرعی: آیا برای دریافت اطلاعات اضافی فایل عکس در Net 4 هم باید از خاصیت PropertyItem کلاس Image استفاده کنم چون کار باهاش خیلی سخت

    ممنون
    آخرین ویرایش به وسیله احمد سامعی : سه شنبه 13 مهر 1389 در 17:16 عصر

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

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