PDA

نسخه کامل مشاهده نسخه کامل : سوال در مورد کار با فایل ها در vb



shadyakh1
10-03-2012, 18:42
با سلام خدمت دوستان و استاید محترم

خب یک سری دستورات در vb هست که میشه با هاش روی فایل ها وفولدر ها کار کرد مثل دستور setattr برای این دستور باید ادرس و نام پوشه رو وارد کنیم می خواستم بدونم ایا راهی هست که مثلا با این دستور خاصیت تمام پوشه های یک درایو رو تغییر بدیم ؟؟؟ کد تغییر خاصیت فایل به صورت دسته جمعی توی داس رو دارم اما نمی دونم چه جوری با دستور setattr کار کنم که تمام پوشه ها و فایل ها یک درایو رو مخفی کنه ؟؟؟

منتظر راهنمایی شما هستم

Payman_62
10-03-2012, 22:38
سلام.
یه تابع ریکرسیو بنویس و رو تک تک فایل اعمال کن.

shadyakh1
10-03-2012, 22:56
ممنون میشه بیشتر توضیح بدید

Payman_62
11-03-2012, 13:58
سلام.
روش کار تابع ریکرسیو یا بازگشتی به این صورته که داخل تابع خود تابع صدا زده میشه و 1 شرطی داخل تابع قرار داده میشه تا در loop نیفته.
تا موقعی که اون شرط برقرار تابع مجدد خودش رو صدا میزنه.

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

مثلا در این مورد که شما سوال فرمودید:
اگر فقط بخوایم فایل های داخل یه فولدر خاص رو بررسی کنیم با یه foreach مشکل حل میشه. چون عمق نا محدود نداریم.
اما اگه بخوایم تمام فایل های داخل یه درایو رو تحت تاثیر قرار بدیم میزان عمق نا مشخص هست. پس از تابع ریکرسیو استفاده میکنیم.
به این صورت که داخل تابع بررسی میکنیم که آیا داخل فولدر جاری فولدر دیگری هست یا نه. اگه بود باز خودش رو با آدرس فولدرهای داخل فولدر جاری صدا میزنیم. در ادامه هم فایل های موجود در فولدر جاری رو تحت تاثیر قرار میدیم.

قطعه کد زیر رو ملاحظه کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

شرطی که عرض کردم که چک میکنه که آیا به انتهای عمق رسیدیم یا نه در این کد این خط هست:
For Each Subfld In fld.SubFolders
که در صورت وجود فولدر زیر شاخه باز خود تابع مورد نظر رو صدا میزنه.

shadyakh1
11-03-2012, 17:34
تشکر در صورت امکان یک سورس نمونه برای دانلود قرار بدید

Payman_62
12-03-2012, 01:38
سلام.
کدی که نوشتم سورسه. قرار بدید تو پروژتون.

mehdibarghi
18-03-2012, 13:11
خب اگه با فرمان داس میتونید انجام بدین چرا با اون از تو برنامه تون انجام نمیدین ؟

mohammad.sweets
10-06-2012, 22:26
شما گفتید که این کارو از طریق داس متونید انجام بدید...........خوب دستورات داسو به صورت زیر تو وی بی بنویسید........

"SHELL"DASTOOR DOS


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

Akbar"22"
15-06-2012, 06:41
shadyakh1
سوال در مورد کار با فایل ها در vb
با سلام خدمت دوستان و استاید محترم

خب یک سری دستورات در vb هست که میشه با هاش روی فایل ها وفولدر ها کار کرد مثل دستور setattr برای این دستور باید ادرس و نام پوشه رو وارد کنیم می خواستم بدونم ایا راهی هست که مثلا با این دستور خاصیت تمام پوشه های یک درایو رو تغییر بدیم ؟؟؟ کد تغییر خاصیت فایل به صورت دسته جمعی توی داس رو دارم اما نمی دونم چه جوری با دستور setattr کار کنم که تمام پوشه ها و فایل ها یک درایو رو مخفی کنه ؟؟؟

منتظر راهنمایی شما هستم




سلام به شما دوستان عزیز چرا بحث رو پیچیده کردید !!!

اگه درست متوجه شده باشم شما قصد دارید تمام فایل های یک دیسک رو مثلا Hidden یا آرشیو یا سیستمی کنید که امکانش هست با دستور SetAttr ، خود شما هم کار کردید پس چرا این به فکرت نمیرسه میتونی با پیدا کردن یک به یک فایل ها درون اون دیسک خصویتشون تغییر بدی من راه حل ساده رو گفتم (جسارت نمیکنم شاید از این بهترم باشه) حالا من یه سه چهار روز فرصت میدم خودت فکر کنی تا خودت بنویسی و بهت بچسبه البته اگه عجله داشتی زود بگو خودم واست بنویسم . با تشکر

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

Akbar"22"
16-06-2012, 06:20
من که نتوستم صبر کنم کد زیرو توی یک Command Button کپی کنید و یک List Box هم به فرمت اضافه کن .



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


بعد از اجرای برنامه و کلیک روی Command Button تموم فایل های دیسک C رو با نام و پسوندشان خواهید دید .

sosani2007
23-09-2012, 18:36
شما ها چرا در 20000000000000 پست نوشتید چطوری از دستورات داس در وی بی استفاده کنم بابا جوابش می شه این:


"shell " command