-
تشخیص وجود فولدر
سلام دوستان عید رو به همگی تبریک می گم و امیدوارم سال خوبی داشته باشید
من می خوام که یه فایلی بسازم تو یه فولدری که با دستور Open این کار رو انجام دادم اما یه مشکلی هست
مشکلم اینه که اگه اون فولدر وجود نداشته باشه پیغام خطا ظاهر می شه به فرض کد زیر رو در نظر بگیرید :
Open "D:\Test\File.txt" For OutPut as #1
منظورم اینه که اگه تویه تکه کد بالا فولدر Test از قبل ایجاد نشده باشه پیغام خطا ظاهر می شه
میخواستم ببینم چطور می تونم تشخیص بدم که آیا فولدری به نام Test وجود داره یا نه ؟
ممنون می شم کمکم کنید:n01: اگه بد توضیح دادم بگید دوباره توضیح بدم
-
سلام...////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
**************
توابع زیر بدون استفاده از API نوشته شدن...//// میتونید از هر کدوم که خواستید استفاده کنید...////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
******************
کد:
Private Function FolderExists(sFullPath As String) As Boolean
Dim myFSO As Object
Set myFSO = CreateObject("Scripting.FileSystemObject")
FolderExists = myFSO.FolderExists(sFullPath)
End Function
***************************
' Return True if a directory exists
' (the directory name can also include a trailing backslash)
Function DirExists(DirName As String) As Boolean
On Error GoTo ErrorHandler
' test the directory attribute
DirExists = GetAttr(DirName) And vbDirectory
ErrorHandler:
' if an error occurs, this function returns False
End Function
**************
موفق باشید!
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
-
ممنون از جوابتون :n16:
اما ممکن هست که دستور ErrorHandler رو یه مقدار توضیح بدید
ممنون میشم:n01:
-
سلام../// خواهش میشه...///
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
***************
ErrorHandler یه برچسب هستش که قسمتی از کد رو مشخص می کنه..//// این برچسب آخر تابع DirExists تعریف شده.//// (می تونید اسمش رو هر چیزی که خواستید بذارید//)..////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
*******************
کد:
On Error GoTo ErrorHandler
*************
خط بالا هم به مفسر VB میگه در صورتی که هر خطایی تو این تابع بوجود اومد کد های بعد از برچسب ErrorHandler رو اجرا کن..////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
****************
بعد از برچسب ErrorHandler هیچ کدی وجود نداره و تابع تموم میشه و مقدار False رو بر می گردونه که یعنی فولدر وجود نداره یا تابع تو چک کردن وجود فولدر با مشکل مواجه شده..//// (به دلیل عدم امکان دسترسی یا ...)..///
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
***********
کد:
DirExists = GetAttr(DirName) And vbDirectory
**************
کد بالا مشخصات مسیری که به تابع ارسال کردید رو توسط تابع GetAttr دریافت می کنه و این مشخصات رو با مشخصات فولدر (vbDirectory) مقایسه می کنه/// چون این مقایسه توسط عملگر And انجام میشه در صورتی که مشخصات مسیر دقیقاً با مشخصات فولدر یکسان باشه مقدار True و در غیر این صورت مقدار False رو داخل DirExists قرار میده...////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
******************
نمی دونم خوب توضیح دادم یا نه../// اگه مشکلی بود بگید..////
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
*************
موفق باشید!
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
********************
پیشنهاد می کنم از کد اول استفاده کنید چون با دقت بیشتری این کار رو انجام میده..////