PDA

View Full Version : اطمینان از وجود یک درایو خاص



alizanganeh
شنبه 17 فروردین 1392, 13:09 عصر
سلام
میخوام بفهمم که سیستمی که برنامه داره توش اجرا میشه ، مثلا درایو D داره یا نه
چطوری باید اینو بفهمم؟
ممنون

محسن واژدی
شنبه 17 فروردین 1392, 13:34 عصر
سلام علیکم
در ساده ترین صورت میتوانیم از تابع Dir استفاده کنیم، به عنوان مثال:
Private Sub Command1_Click()
MsgBox "Exist status: " & (Dir("d:") > "")
End Sub

و یا از APIی PathFileExists استفاده کنیم:
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
Private Sub Command1_Click()
MsgBox "Exist status: " & (PathFileExists("d:") = 1)
End Sub

موفق باشید

alizanganeh
شنبه 17 فروردین 1392, 14:20 عصر
محسن جان بازم خودت
ممنون
تابع Dir رو بلد بودم ولی یکم بد مینوشتمش
ممنون ♥

alizanganeh
شنبه 17 فروردین 1392, 16:40 عصر
آقا مشکل من از جای دیگه ایه
وقتی میزنم وجود درایو c یا d رو چک کنه جواب میده
ولی برای مثلا درایو e جواب نمیده (دستور Dir)

ینی درایو e هست ولی میگه نیست

چه کنم؟!

SlowCode
شنبه 17 فروردین 1392, 18:15 عصر
سلام
بهتره از GetDriveType (http://msdn.microsoft.com/en-us/library/windows/desktop/aa364939(v=vs.85).aspx)استفاده کنی، مثلا:

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Load()
If GetDriveType("E:\") = 1 Then MsgBox "Drive does not exist!"
End Sub

با FSO :
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.DriveExists("c:") = True Then
MsgBox "Drive c: exists!"
Else
MsgBox "Drive c: does not exist."
End If
Set fs = Nothing

محسن واژدی
شنبه 17 فروردین 1392, 18:30 عصر
بهینه ترین راه استفاده از دستور PathFileExists هست یا روشی که آقای محسن15 عزیز لطف کردن، چون عملا تابع Dir برای بررسی موجودیت یک فایل نوشته نشده؛ به عبارتی این تابع نام فایلهای موجود در یک مسیر را برمیگرداند و اگر مسیر انتخابی ما خالی باشد مقدار برگشتی Empty هست هرچند که مسیر مشخص شده ما وجود هم داشته باشد،

موفق باشید

alizanganeh
شنبه 17 فروردین 1392, 20:04 عصر
بهینه ترین راه استفاده از دستور PathFileExists هست یا روشی که آقای محسن15 عزیز لطف کردن، چون عملا تابع Dir برای بررسی موجودیت یک فایل نوشته نشده؛ به عبارتی این تابع نام فایلهای موجود در یک مسیر را برمیگرداند و اگر مسیر انتخابی ما خالی باشد مقدار برگشتی Empty هست هرچند که مسیر مشخص شده ما وجود هم داشته باشد،

موفق باشید



آره این خاصیت dir رو چند دقیقه
یش متوجه شدم.
اگر توی مسیر فایل نباشه فکر میکنه اصلا مسیر نیست
همونی که گفتیدو میزنم
بسیار ممنون از لطف جفت محسن ها ♥