واضح آرشیو وب فارسی:سایت ریسک: کپی گرفتن یک پوشه در ویژوال بیسیک armin_mx 05 ارديبهشت 1387, 14:08سلام دوستان چطور مي شه يك پوشه رو در وي بي از جايي به جاي ديگه كپي گرفت... ممنون the_king 05 ارديبهشت 1387, 15:45دو راه حل واسه انجام اینکار معرفی می کنم : راه اول استفاده از کتابخانه Microsoft Scripting Runtime است. در منوی Project ویژوال بیسیک روی آیتم References کلیک کنید. حالا عنوان Microsoft Scripting Runtime را در لیست بیابید و تیک بزنید. (مسیر پیشفرض این کتابخانه اینجا است : C:WINDOWSsystem32scrrun.dll حالا کد زیر می تواند پوشه C:Folder1 را با تمام محتویات و زیرشاخه هایش درون پوشه C:Folder2 کپی کند : Dim FS As New Scripting.FileSystemObject FS.CopyFolder "C:Folder1", "C:Folder2" استفاده از این کتابخانه از نظر کد نویسی ساده است ولی چند عیب مهم هم داره. اولا اینکه نیازه که این کتابخانه حتما در کامپیوتری که برنامه را در آن اجرا می کنید نصب شده باشه. ثانیا هیچ کنترلی روی عملیات ندارید و اگه کپی زمان زیادی طول بکشه برنامه شما قفل می کنه و تا پایان عمل کپی باید بدون هیچ پیغامی کاربر را منتظر نگه دارید. راه حل دوم استفاده از توابع API سیستم عامل است. تابع SHFileOperation در API ویندوز برای انجام اینگونه عملیات مناسبتره. من بر اساس این تابع دو توابع طراحی کردم با نامهای DirCopy و DirMove فرق ایندو فقط در اینه که اولی پوشه را کپی می کند و دومی انتقال می دهد (Move) حتی کد داخل آنها هم جز عبارت کلیدی Copy و Move در سایر موارد یکسان هستند. DirCopy (Source, Destination, [Silent]) As Boolean DirMove (Source, Destination, [Silent]) As Boolean پارامتر Source مسیر مبدا را نشان می دهد و Destination مقصد را. پارامتر Silent اختیاری است. اگر False باشد (حالت پیشفرض)، هنگام کپی یک پنجره استاندارد را نشان می دهد که پیشرفت عمل کپی یا انتقال را همانند Explorer ویندوز به تصویر می کشد. همچنین دکمه Cancel هم دارد و اگر در زمان کپی با نسخه دیگری از فایل در پوشه مقصد روبرو شود پیغام Overwrite را نشان خواهد داد. اگر پارامتر Silent را در وضعیت True قرار دهید، هیچ پیغامی به نمایش در نمی آید و در سکوت عملیات را انجام می دهد. اگر عملیات این دو تابع موفقیت آمیز باشد، مقدار True را برمی گرداند. مثلا : DirCopy "C:Folder1", "C:Folder2" در هر دو روش اگه پوشه مقصد وجود نداشته باشد، به صورت خودکار ایجاد خواهد شد. برای استفاده از این دو تابع DirCopy و DirMove کافیست که فایل File.bas را ضمیمه پروژه تان نمایید. کد دو تابع در داخل ماژول File.bas ضمیمه این پست می باشد. armin_mx 05 ارديبهشت 1387, 20:28دستت درست ، خیلی کارت درسته Saeed Shahabi 22 ارديبهشت 1388, 17:44سلام... چطور میتونم در vb 6 از یه فولدر و محتویاتش کپی بگیرم؟ (البته فکر کنم قبلا توضیح داده شده ولی نتونستم مبحث مربوطه رو پیدا کنم) ممنون می شم اگه کمکم کنید... the_king 22 ارديبهشت 1388, 20:11سلام... چطور میتونم در vb 6 از یه فولدر و محتویاتش کپی بگیرم؟ (البته فکر کنم قبلا توضیح داده شده ولی نتونستم مبحث مربوطه رو پیدا کنم) ممنون می شم اگه کمکم کنید... بله، قبلا توضیح داده شده : کپی گرفتن یک پوشه در ویژوال بیسیک () saalek110 22 ارديبهشت 1388, 22:51دو تاپیک ادغام شد. با تشکر از king عزیز. لطفا قبل ایجاد تاپیک به روش زیر یا روشهای دیگر جستجو کنید: کپی پوشه site: عبارت بالا را در گوگل جستجو کنید.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4547]