View Full Version : حذف شاخه
سعید قدیری مقدم
چهارشنبه 28 مرداد 1383, 22:18 عصر
چطور می تونیم یک شاخه که خالی نیست و شامل فایل یا شاخه های دیگه هست رو پاک کنیم؟
با دستور rmdir و حتی api مربوطه که romovedirectory هست نمیشه این ها فقط شاخه هایی که خالی هستن رو پاک میکنه
AminSobati
چهارشنبه 28 مرداد 1383, 23:11 عصر
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder ("d:\MyFolder")
فقط مراقب باشید MyFolder در حال استفاده توسط برنامه خاصی نباشه چون Permission Denied میده.
موفق باشید،
امین ثباتی MCSD
(سیدشریفی)
شنبه 31 مرداد 1383, 10:02 صبح
آقا سعید میتونید از این روش هم استفاده کنید .
فرض کنید میخواهید دایرکتوری Comp را حذف کنید :
ChDir "c:\Data\Comp"
Kill "*.*"
ChDir "c:\Data"
RmDir "Comp"
:)
سعید قدیری مقدم
شنبه 31 مرداد 1383, 14:03 عصر
اخه مشکا من اینه که مثلا میخوام شاخهای مثل c:\windows رو پاک کنم
البته منظورم این شاخه نیست بلکه شاخه هایی مثل این که توش علاوه بر فایل شاخه هم هست و داخل اون شاخه ها علاوه بر فایل ممکنه شاخه های دیگه ای عن باشه
:( مشکل من اینه
AminSobati
شنبه 31 مرداد 1383, 18:21 عصر
یعنی مشکل شما با post من حل نشد؟
سعید قدیری مقدم
شنبه 31 مرداد 1383, 23:24 عصر
نه والا به خیلی از شاخه ها گیر میده
شاخه هایی که اصلا توصط برنامه دیگه ای کنترل نمیشه
من نمیتونم مسیر تمام شاخه های موجود تو یک شاخه رو بدرستی در بیارم اگه در این ضمینه بتونید منو کمک کنید ممنون میشم :oops:
AminSobati
یک شنبه 01 شهریور 1383, 00:27 صبح
چه پیغامی میده؟
سعید قدیری مقدم
یک شنبه 01 شهریور 1383, 01:25 صبح
Permission Denied
اگه بتونم تمام شاخه های موجود در یک شاخه رو بدست بیارم کار تمومه
البته یک خورده با Dir کار کردم خوشبختانه لیست شاخه های path خودشو میده اگه روش یک خورده کار کنم و path شو به مسیر های خودش ببرم فکر کنم بتونم لیست مسیرهای داخل شاخه مادر رو در بیارم
نظر شما چیه؟ آیا روش بهتری برای بدست آوردن مسیر شاخه های درون یک شاخه مادر سراغ دارید ؟ منو راهنمایی کنید ممنون :oops:
mahdi_farhani
یک شنبه 01 شهریور 1383, 01:29 صبح
با استفاده از شی Dir میتونی تمام مسیرها به دست بیاری
سعید قدیری مقدم
یک شنبه 01 شهریور 1383, 01:38 صبح
تمام مسیر ها رو یک جا میشه در آورد؟
اگه میشه یک خورده توضیح بده
راستش من به کمک
for i = 0 to dir1.listcount-1
dir1.list(i)
next
فقط تونستم شاخه های داخل path رو در بیارم برای بقیه مجبورم بترتیب path رو معادل مسیر های بدست اومده بکنم و دوباره از این کد استفاده کنم
راستش اینجوری همچین دردسره و اگه شاخه ها زیاد باشه یک خورده زمان میبره
راهی هس که سریعتر به نتیجه برسم؟
AminSobati
یک شنبه 01 شهریور 1383, 02:06 صبح
سعید جان این رو تست کردم، کاملا جواب میده:
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Do While True
objFSO.DeleteFolder ("C:\MyFolder")
If Err.Number = 0 Then Exit Do
Err.Clear
Loop
On Error GoTo 0
فقط قبلش خوبه که وجود MyFolder رو چک کنی. ضمنا هر چند تا Folder تو در تو داشته باشی، همه رو پاک میکنه.
موفق باشین
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.