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

نام تاپیک: بدست اوردن لیست فایل های جدید روی هارد !

  1. #1

    بدست اوردن لیست فایل های جدید روی هارد !

    سلام
    خوب روی سیستم عاملی که داریم قراره n دقیقه (کمتر از 30 دقیقه)
    یک جستجو کامل انجام بشه (باتوجه به ادرس هایی که کاربر میدهد مثلا درایو سی و دی و .. یا کل سیستم یا ....)
    و جدیدترین فایل ها لیست بشه (با توجه به پوسوند هایی که کاربر مد نظر دارد)
    و به کاربر نمایش داده بشه

    فضا و حجم هارد دیسک مورد استفاده توسط کاربر نامشخص است :/
    تعداد هارد دیسک هم نامشخص است
    (این ها را گفتم برا اینکه میخوایم سریع ترین روش ممکن را بتونیم پیدا کنیم)

    خوب در این حالت باید چی کار کرد باید یه سری بریم کل فایل های جدید را جستجو کنیم بعد تازه از لیستی که بدست اومده پسوند مد نظر کاربر را ببینیم تو کودوم فایل ها هست و جداش کنیم ؟ این که دوباره کاری و دوباره کاری میشه :(

    با سرچ در هر دایرکتوری و همینجور ادامه دادن این روند که هیچ کاری نمیشه از پیش برد یک موتور جستجو لازمه فکر میکنم ولی من نمیدونم چجوری میتونم بنویسم یا ازش استفاده کنم !!!

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

    الان از چه طریقی اقدام کنم که هم سریع باشه و هم دقیق ؟
    امکانش هست کسی بتونه من را راهنمایی کنه ؟

  2. #2

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    هیچ پیشنهادی نیست ؟
    کسی با موتور جستجو تا الان کار نکرده چجوری باید این ها را درست کرد ؟

  3. #3

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    من برا پيمايش كل هارد اين كارو ميكنم
    يك تابع درست ميكنم به تعداد درايو هام اونو با thread فراخواني ميكنم كه بياد ليست كل فايل و فولدراي درايو رو بهم بده
    داخل تابع هم به ازاي هر فولدر يك بار اين تابع رو فراخواني ميكنم (با thread) و باز هم ليست فايل و فولدراي ايت مسيرو ميگيرم و ....
    اينطوري ميشه يه چيزي شبيه به توابع بازگشتي كه خودشونو دوباره اجرا ميكنن اما با thread
    سرعت پيمايش بالا ميره اينجوري

  4. #4

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    نقل قول نوشته شده توسط hamid_hr مشاهده تاپیک
    من برا پيمايش كل هارد اين كارو ميكنم
    يك تابع درست ميكنم به تعداد درايو هام اونو با thread فراخواني ميكنم كه بياد ليست كل فايل و فولدراي درايو رو بهم بده
    داخل تابع هم به ازاي هر فولدر يك بار اين تابع رو فراخواني ميكنم (با thread) و باز هم ليست فايل و فولدراي ايت مسيرو ميگيرم و ....
    اينطوري ميشه يه چيزي شبيه به توابع بازگشتي كه خودشونو دوباره اجرا ميكنن اما با thread
    سرعت پيمايش بالا ميره اينجوري
    ممنون از پیشنهادتون
    این روش خوبه ولی فکر نمیکنم زیاد کارا باشه برای من
    چون مثلا با این روش شما ببین کاربر تنظیم کنه که مثلا هر 5 دقیقه هاردش چک بشه برای فای های جدید اینجوری هنوز سرچ قبلی تموم نشده سرچ جدید شروع میشه (مسئله زمانی را مطرح کردم یعنی میگم بازم زمان زیادی طول میکشه تا نتیجه را اعلام کنه)
    چیز دیگری وجود داره به نام موتور جستجو نمیدونم چجوری کار میکنن ولی مثل این روش ها نیست یه چیزی تو مایه های جستجوی گوگل مثلا
    گوگل نمیاد دونه دونه همه را چک کنه که یه دفعه با تکنولوژی موتور جستجو همه را میاره
    یا مثلا خود سرچ ویندوز
    یا....
    این روش هم خیلی سریع عمل میکنن و هم اینکه حافظه زیاد اشغال نمیکنن جواب را زود میدهند و خیلی امکانات دیگر...

    دنبال چنین روشی هستم میخوام ببینم کسی بلد نیست / بریم سراغ منابع خارجی ؟(منبع خارجی هم اگر کسی داره لطف کنه قرار دهد)

    بهترین مثال همون سرچ خود ویندوز هست
    شما داخل سرچ خود ویندوز فایل های 1 ساعت قبل را جستجو کن خیلی سریع جواب را بهت میده ...چجوری به نظرت یعنی دونه دونه همه فلدر ها را اورده و دیده و جواب را داده ؟ حتما اینطور نیست .... چون اگر اینطور بود کلی زمان میبرد

    سپاس

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    جست و جو کنید updatedb و locate
    این ها دو برنامه(در واقع یک برنامه) در لینوکس هستن که این کار رو ۱۰۰ برابر سریعتری از چیزی که میخواهی انجام میدن.
    میتونید کدشون رو از اینترنت بگیرید و برای ویندوز تغییر بدید.
    locate همیشه قبل از 2 ثانیه حواب میده.بدون اغراق.

  6. #6

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    جست و جو کنید updatedb و locate
    این ها دو برنامه(در واقع یک برنامه) در لینوکس هستن که این کار رو ۱۰۰ برابر سریعتری از چیزی که میخواهی انجام میدن.
    میتونید کدشون رو از اینترنت بگیرید و برای ویندوز تغییر بدید.
    locate همیشه قبل از 2 ثانیه حواب میده.بدون اغراق.
    خوب اقا این الان سورسش هست فک کنم
    http://packages.debian.org/wheezy/locate
    از منار سمت راست در قسمت دانلود میتونید سورس را دانلود کنید
    خوب الان اینا انگاری همش دستور لینوکس هست
    یه جوریه فکر میکنم یا این سورسش نیست یا چیز دیگه ای اخه سورس من تو اینا ندیدم :)
    بعد سورس به چه زبانی خواهد بود ؟
    تا اینجا یی هم که من فهمیدم با این دستور فقط میشه دنبال فلدر و فایل گشت نمیشه دنبال یه زمان خاصی چیزی گشت ...

  7. #7
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    فقط فایل و دایرکتوری؟
    این دستور صبح ها نون هم میگیره.
    خروجی رو میتونید هر طوری که دوست دارید تغییر بدید.در لینوکس از ls xargs و awk استفاده میکنند.شما میتونید در کدتون این کار رو بکنید.
    http://ftp.de.debian.org/debian/pool....2.orig.tar.gz
    آخرین ویرایش به وسیله FastCode : چهارشنبه 25 اردیبهشت 1392 در 15:59 عصر

  8. #8

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    فقط فایل و دایرکتوری؟
    این دستور صبح ها نون هم میگیره.
    خروجی رو میتونید هر طوری که دوست دارید تغییر بدید.در لینوکس از ls و awk استفاده میکنند.شما میتونید در کدتون این کار رو بکنید.
    http://ftp.de.debian.org/debian/pool....2.orig.tar.gz
    فقط نون میگیره ؟ نون خالی سودی نداره که کره - پنیر - مرب و... هم لازمه... بعدش اگه لقمه هم بگیره دیگه خیلی خوب میشه ها لقمه نمیگیره ؟

    بگذریم نگرفتی منظور من چیه
    ببین من قراره بر اساس تاریخ و زمان جستجو هام را انجام بدم دیگه ؟ نام فایل یا دایرکتوری را که ندارم !

    حالا یک سوال ! به نظرتون از API خود ویندوز برای سرچ استفاده کنم به نتیجه میرسم یا موجب ضرر و بدبختی است (در مواقعی که مثلا قراره 10 ترابایت را جستجو کنه)
    کسی امتحان نکرده ؟

  9. #9
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    نقل قول نوشته شده توسط mehrdad1991h مشاهده تاپیک
    فقط نون میگیره ؟ نون خالی سودی نداره که کره - پنیر - مرب و... هم لازمه... بعدش اگه لقمه هم بگیره دیگه خیلی خوب میشه ها لقمه نمیگیره ؟

    بگذریم نگرفتی منظور من چیه
    ببین من قراره بر اساس تاریخ و زمان جستجو هام را انجام بدم دیگه ؟ نام فایل یا دایرکتوری را که ندارم !

    حالا یک سوال ! به نظرتون از API خود ویندوز برای سرچ استفاده کنم به نتیجه میرسم یا موجب ضرر و بدبختی است (در مواقعی که مثلا قراره 10 ترابایت را جستجو کنه)
    کسی امتحان نکرده ؟
    API خود ویندوز اگر میتونست ۱۰ ترابایت رو ایندکس کنه توی همون explorer درست کار میکرد.
    این برنامه میتونه این کار رو هم برای شما انجام بده.فقط یک مقدار تغییر میخواد که فکر نمیکنم کاری داشته باشه.
    فقط برای استفاده از این برنامه در ویندوز باید API های کار با فایل رو hook کنید و index رو همیشه به روز نگه دارید.
    این کار در لینوکس انجام نشده چون لازم نبوده و فقط سرعت رو کم میکنه.ولی چون در ویندوز کسی به این چیزها اهمیت نمیده نباید مشکلی داشته باشه.
    با این روش میتونید تاریخ رو هم در دیتابیس داشته باشید.در غیر این صورت میتیونید تاریخ رو از خود فایل بگیرید.حجم فایل هم همین داستان رو داره.

  10. #10

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    خیلی خوب اقا با همین روش locate اوکی شده یه چیزایی
    اومدیم یه دیتابیس درست کردیم فایل ها را سرچ میکنیم میریزیم تو دیتابیسمون
    موقع جستجو خیلی سریع فایلا را که میخوایم نشونمون میده بسیار عالی است سرعت جستجو

    ولی مشکل داریم !!!
    هر وقت فایل جدید بزاریم تو سیستم خودکار تو دیتابیس نمیره باید هر چند وقت یه بار دیتابیس را اپدیت کنیم
    الان این اپدیت شدنش زمان میبره !!!

    چجوری هر فایلی که اضافه شد خودکار به دیتابیس اضافه اش کنم ؟

  11. #11
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: بدست اوردن لیست فایل های جدید روی هارد !

    خوشحالم که سرعت خوبه.
    نقل قول نوشته شده توسط mehrdad1991h مشاهده تاپیک
    چجوری هر فایلی که اضافه شد خودکار به دیتابیس اضافه اش کنم ؟
    گفتم که چه کار کنید:
    فقط برای استفاده از این برنامه در ویندوز باید API های کار با فایل رو hook کنید و index رو همیشه به روز نگه دارید.
    روی ویندوز کامپایل شد؟ممکنه یک کپیش رو به من بدید برای تست؟

تاپیک های مشابه

  1. لیست فایل های موجود در یک پوشه روی سرور
    نوشته شده توسط sara_aryanfar در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 14 بهمن 1391, 21:54 عصر
  2. بدست اوردن لیست فیلد های یک جدول
    نوشته شده توسط mohsen_metn در بخش SQL Server
    پاسخ: 3
    آخرین پست: شنبه 16 خرداد 1388, 17:33 عصر
  3. بدست اوردن لیست Instance های SQL
    نوشته شده توسط ohh_mid در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: یک شنبه 03 شهریور 1387, 19:24 عصر
  4. بدست آوردن لیست فایل های موجود در یک مسیر
    نوشته شده توسط mc_laren در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 22 دی 1386, 11:31 صبح
  5. بدست آوردن لیست برنامه های نصب شده روی ویندوز
    نوشته شده توسط mskm100 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 11
    آخرین پست: جمعه 23 شهریور 1386, 23:41 عصر

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

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