PDA

View Full Version : سوال: حذف پوشه هایی با نام های خاص



iltsaetsi
یک شنبه 21 شهریور 1389, 03:15 صبح
سلام دوستان .
چطوری میشه پوشه هایی که تو نامشون کلماتی مثل com یا con هستش رو پاک کرد ؟

IamOverlord
یک شنبه 21 شهریور 1389, 05:53 صبح
سلام دست عزیز!
برای حذف یک Directory بدون استفاده از File System Object از این Function که نوشتم استفاده کنید :

Private Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

Public Function sDeleteDirectory(ByVal PathName As String) As Boolean
If RemoveDirectory(PathName) = 1 Then
sDeleteDirectory = True
Else
sDeleteDirectory = False
End If
End Function

ضمنا برای این که متوجه بشید که آیا فلان رشته شامل مثلا عبارت "con" می شود یا نه از دستور InStr استفاده کنید به این صورت:

x = InStr(1, FirstString, SecondString, vbTextCompare)
اگر مقدار x برابر با 0 بود یعنی SecondString در FirstString وجود دارد، در غیر این صورت SecondString در FirstString وجود ندارد.
:چشمک:

iltsaetsi
یک شنبه 21 شهریور 1389, 15:28 عصر
دوست عزیز از پاسختون ممنونم ولی پوشه هایی که اول نامشون کلماتی مثل con هست نه با تابع kill پاک میشن نه با FileSystemObject ونه با تابع RemoveDirectory . ولی من
بعضی از نرم افزار هارو دیدم که اینجور پوشه ها رو پاک می کنن سوال من اینه که این نرم افزار ها چجوری این کار رو می کنن ؟

Saman_12
یک شنبه 21 شهریور 1389, 15:48 عصر
این پوشه ها با داس ساخته میشن با داس هم پاک.
قبل از دادن آدرس پوشه این رو اظافه کن :


Rd \\.\"File path"

javadt
یک شنبه 21 شهریور 1389, 22:28 عصر
این پوشه ها با داس ساخته میشن با داس هم پاک.
قبل از دادن آدرس پوشه این رو اظافه کن :


Rd //./"File path"


واسه من ارور
Invalid switch - "/". داد چي كار كنم؟

iltsaetsi
یک شنبه 21 شهریور 1389, 22:41 عصر
یه اشتباه کوچولو تو کد سامان هستش . کد درست به صورت زیره

Rd \\.\"File path"
البته این کد فقط برای حذف پوشه هاست و برای فایل ها به کا نمیره .

javadt
دوشنبه 22 شهریور 1389, 13:33 عصر
یه اشتباه کوچولو تو کد سامان هستش . کد درست به صورت زیره

Rd \\.\"File path"البته این کد فقط برای حذف پوشه هاست و برای فایل ها به کا نمیره .

تشكر دوست عزيز
من يك پوشه دارم كه توش فايل هم هست
اما حالا كه مي خوام با دستور بالا پاكش كنم ارور
The directory is not empty. اين پوشه رو چطوري مي تونم پاك كنم (دسترسي سيستم رو ازش قطع كردم-اكسس دينايد مي ده)

Saman_12
دوشنبه 22 شهریور 1389, 14:07 عصر
تشكر دوست عزيز
من يك پوشه دارم كه توش فايل هم هست
اما حالا كه مي خوام با دستور بالا پاكش كنم ارور
The directory is not empty. اين پوشه رو چطوري مي تونم پاك كنم (دسترسي سيستم رو ازش قطع كردم-اكسس دينايد مي ده)

اول باید فایل های داخل اون پوشه رو پاک کنی.(من یک روش دیده بودم که بدون پاک کردن فایل هم میشد پوشه رو پاک کرد اگه پیداش کردم میزارم.)

iltsaetsi
دوشنبه 22 شهریور 1389, 16:26 عصر
من کدشو پیدا کردم :


RD /s /q \\.\"Folder (file://\\.\"Folder) Path"
سوئیچ s باعث میشه تمام فایل های داخل پوشه حذف بشن و سوئیچ q هم باعث میشه که برای حذف سوال نکنه .