میشه راجع به این کد توضیح بدید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید![]()
میشه راجع به این کد توضیح بدید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید![]()
Last edited by whisper; 16-07-2008 at 19:05.
سلام
خط اول آرایه ای (لیست) از کلیه فایلهای داخل مسیر C:\Windows به دست می آورد.
این آرایه شامل مسیر کامل فایل است، مثلاً C:\Windows\file.txt ولی عموماً در زمان نمایش لیستی به کاربران برنامه نویس مایل است تا به جای عبارت C:\Windows\file.txt عبارت file.txt نمایش داده شود.
حلقه موجود همین کار را انجام میدهد و تک تک عناصر String داخل آرایه را با کمک تابع GetFileName فقط نامشان را استخراج میکند.
و خط آخر هم که موجب نمایش آرایه جدید میشود.
ضمناً قابل ذکر است که دو کنترلر قدیمی VB6 با نامهای FileListBox و DirListBox هم در دات نت وجود دارد ولی به صورت پیشفرض در آیتم های Toolbar نیستند که در صورت نیاز باید دستی اضافه شان کرد.
سلام دوستان
آقا یه سوال دیگه
من وقتی یه فایل رو پاک می کنم اسمش هنوز تو لیست باکس من میمونه یا یه فایل ایجاد می کنم هم همین مشکل وجود داره چی کار کنم ؟؟؟
me.refresh و me.listbox.refresh هم استفاده کردم ولی حل نشد فقط وقتی برنامه رو می بندم دوباره باز میکنم درست میشه؟!!
سلام
دستور Refresh شما فقط ظاهر نمایشی کنترلرها را بازتولید میکند و ربطی به لیست فایلها ندارد.
در اصل لیستی که شما به دست می اورید یک آرایه معمولی است، کاملاً ایستا!
مثل به دست آوردن حجم یک فایل به صورت یک عدد Integer یا Long !
شما باید آرایه جدید را از اول به دست آورید. یعنی کل دستورات را باید مجدداً اجرا کنید.
سلام
میشه بیشتر راهنماایم کنید من از یه راه رفتم کار هم کرد ولی فکر میکنم اشتباه باشه......!!!!
من قطعه کدی که توی فرم لود برنامه ام بود رو بعد از ایجاد یک فایل کپی کردم کار هم میکنه ولی اینجوری برنامه سنگین میشه تو حجم بالا که....
آخه هر چی گشتم که یه کاری کنم فرم1 برنامه ام بعد از ایجاد فایل دوباره ایجاد شه نشد.
من فایل جدید رو تو یه فرم دیگه ایجاد می کنم.
سلام
شما باید همین کد پست 9 و 11 را در قالب یک sub بنویسید مثلاً به نام FileListRefresh ، و در form_load و هر مکانی که نیاز به بازسازی لیست است، فراخوانی کنید.
برای چی؟ چرا؟ یک فراخوانی زیر روال sub ای که گفتم، کافی است.
همچنین میتوانید به نوعی این زیر روال را در فرم دیگر فراخوانی کنید، یا روش کاملتر آن است که از FileSystemWatcher استفاده کنید تا تغییرات را به شما گزارش دهد و شما لیست را بازتولید کنید.
این روش استاندارد دات نت است، اگر با سرعت به مشکلی بر خوردید، میتوان با دسترسی مستقیم API سرعت را تا حد ممکن افزایش داد ولی فکر نکنم نیازتان شود.
آقا دستت درد نکنه دنبال همین راه بودم خودشه حله![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)