دالة التعامل مع الملفات و المجلدات DIR



فائدة الدالة DIR
الحصول على اسم الملف او المجلد عن طريق المسار الخاص به
استخدام النجمة * (asterisk) بدلا من مجموعة من الحروف و سنراها فى الامثلة
استخدام علامة الاستفهام ؟ بدلا من حرف واحد



Constant Description
vbNormal (افتراضي) يحدد الملفات بدون سمات.
vbReadOnly يحدد ملفات للقراءة فقط بالإضافة إلى الملفات التي ليس لها سمات.
vbHidden يحدد الملفات المخفية بالإضافة إلى الملفات بدون سمات.
VbSystem يحدد ملفات النظام بالإضافة إلى الملفات التي ليس لها سمات. غير متوفر على Macintosh.
vbVolume يحدد تسمية الحجم ؛ إذا تم تحديد أي سمة أخرى ، فسيتم تجاهل vbVolume. غير متوفر على Macintosh.
vbDirectory يحدد الدلائل أو المجلدات بالإضافة إلى الملفات التي ليس لها سمات.
vbAlias اسم الملف المحدد هو اسم مستعار. متاح فقط على Macintosh.



الحصول على اسم الملف من المسار الخاص به

Sub GetFileNames()
Dim FileName As String
FileName = Dir("C:\Users\sumit\Desktop\Test\Excel File A.xlsx")
MsgBox FileName
End Sub



معرفة اذا كان الملف موجود ام لا

Sub CheckFileExistence()
Dim FileName As String
FileName = Dir("C:\Users\sumit\Desktop\Test\Excel File A.xlsx")

If FileName <> "" Then
MsgBox FileName
Else
MsgBox "File Doesn't Exist"
End If

End Sub



التأكد من وجود مجلد ام لا

Sub CheckDirectory()
Dim PathName As String
Dim CheckDir As String

PathName = "C:\Users\sumit\Desktop\Test"
CheckDir = Dir(PathName, vbDirectory)

If CheckDir <> "" Then
MsgBox CheckDir & " exists"
Else
MsgBox "The directory doesn't exist"
End If

End Sub



التأكد من وجود المجلد و اذا لم يكن موجود يمكن انشاءه

Sub CreateDirectory()
Dim PathName As String
Dim CheckDir As String

PathName = "C:\Users\sumit\Desktop\Test"
CheckDir = Dir(PathName, vbDirectory)

If CheckDir <> "" Then
MsgBox CheckDir & " folder exists"
Else
'___ تستخدم الدالة التالية فى انشاء مجلد جديد
MkDir PathName
MsgBox "A folder has been created with the name" & CheckDir
End If

End Sub



الحصول على اسماء كل الملفات و المجلدات بداخل مجلد معين
Sub GetAllFile_FolderNames()
Dim FileName As String
FileName = Dir("C:\Users\sumit\Desktop\Test\", vbDirectory)

Do While FileName <> ""
Debug.Print FileName
FileName = Dir()
Loop
End Sub



الحصول على اسماء كل الملفات بداخل مجلد معين

Sub GetAllFileNames()
Dim FileName As String
FileName = Dir("C:\Users\sumit\Desktop\Test\")

Do While FileName <> ""
Debug.Print FileName
FileName = Dir()
Loop
End Sub



الحصول على اسماء كل المجلدات بداخل مجلد معين

Sub GetSubFolderNames()
Dim FileName As String
Dim PathName As String

PathName = "C:\Users\sumit\Desktop\Test\"
FileName = Dir(PathName, vbDirectory)

Do While FileName <> ""
If GetAttr(PathName & FileName) = vbDirectory Then
Debug.Print FileName
End If
FileName = Dir()
Loop
End Sub



الحصول على اول ملف اكسل بداخل مجلد معين

Sub GetFirstExcelFileName()
Dim FileName As String
Dim PathName As String

PathName = "C:\Users\sumit\Desktop\Test\"
FileName = Dir(PathName & "*.xls*")
MsgBox FileName
End Sub



الحصول على اسماء كل ملفات الاكسل بداخل مجلد معين

Sub GetAllFileNames()
Dim FolderName As String
Dim FileName As String
FolderName = "C:\Users\sumit\Desktop\Test\"
FileName = Dir(FolderName & "*.xls?")

Do While FileName <> ""
Debug.Print FileName
FileName = Dir()
Loop

End Sub