Dir फ़ंक्शन

VBA में फ़ाइलों और फ़ोल्डरों के साथ काम करते समय Dir फ़ंक्शन सबसे बुनियादी और आवश्यक फ़ंक्शनों में से एक है। यह विशिष्ट फ़ोल्डरों से फ़ाइल सूची प्राप्त करने या फ़ाइल अस्तित्व जांचने जैसे कार्यों के लिए अपरिहार्य है।

Dir फ़ंक्शन की आवश्यकता कब होती है

व्यावहारिक कार्यों में, आप Dir फ़ंक्शन का उपयोग इन स्थितियों में करेंगे:

  • एकाधिक फ़ाइलों का बैच प्रोसेसिंग: डेटा एकत्रीकरण के लिए फ़ोल्डर में सभी Excel फ़ाइलें खोलना
  • फ़ाइल अस्तित्व जांच: प्रोसेसिंग से पहले सत्यापित करना कि कोई विशिष्ट फ़ाइल मौजूद है
  • बैकअप फ़ाइल बनाना: यदि फ़ाइल पहले से मौजूद है तो क्रमिक संख्या जोड़ना
  • लॉग फ़ाइल प्रबंधन: पुरानी लॉग फ़ाइलें हटाना

Dir फ़ंक्शन की मूल बातें

मूल सिंटैक्स

Dir([पथनाम], [विशेषताएं])

Dir फ़ंक्शन निर्दिष्ट पैटर्न से मेल खाने वाली पहली फ़ाइल या फ़ोल्डर का नाम लौटाता है।

सबसे सरल उपयोग

dir_basic.bas
Sub DirBasic()
    Dim fileName As String

    ' वर्तमान फ़ोल्डर में पहली फ़ाइल प्राप्त करें
    fileName = Dir("*.*")

    Debug.Print "पहली फ़ाइल: " & fileName
End Sub
チェック

Dir को पहली बार कॉल करते समय, पथ निर्दिष्ट करें। बाद की कॉल के लिए, अगली फ़ाइल प्राप्त करने के लिए बिना आर्गुमेंट के कॉल करें।

फ़ाइल सूची प्राप्त करना

dir_file_list.bas
Sub GetFileList()
    Dim folderPath As String
    Dim fileName As String

    ' फ़ोल्डर पथ निर्दिष्ट करें
    folderPath = "C:\Users\YourName\Documents\"

    ' पहली फ़ाइल प्राप्त करें
    fileName = Dir(folderPath & "*.*")

    ' सभी फ़ाइलों के माध्यम से लूप करें
    Do While fileName <> ""
        Debug.Print fileName

        ' अगली फ़ाइल प्राप्त करें
        fileName = Dir()
    Loop
End Sub
チェック

Dir फ़ंक्शन पहली कॉल पर पथ की आवश्यकता होती है, फिर समान खोज मानदंड के साथ अगली फ़ाइल प्राप्त करने के लिए बिना आर्गुमेंट के Dir() कॉल करें। जब सभी फ़ाइलें प्राप्त हो जाती हैं तो यह खाली स्ट्रिंग ("") लौटाता है।

वाइल्डकार्ड का उपयोग

Dir फ़ंक्शन वाइल्डकार्ड (* और ?) के साथ पैटर्न मिलान का समर्थन करता है:

  • * (तारांकन): शून्य या अधिक किसी भी वर्ण से मेल खाता है
  • ? (प्रश्न चिह्न): किसी भी एकल वर्ण से मेल खाता है
dir_wildcards.bas
Sub WildcardExamples()
    Dim fileName As String
    Dim folderPath As String

    folderPath = "C:\Data\"

    ' सभी फ़ाइलें
    Debug.Print "=== सभी फ़ाइलें ==="
    fileName = Dir(folderPath & "*.*")
    Do While fileName <> ""
        Debug.Print fileName
        fileName = Dir()
    Loop

    ' केवल Excel फ़ाइलें
    Debug.Print "=== Excel फ़ाइलें ==="
    fileName = Dir(folderPath & "*.xlsx")
    Do While fileName <> ""
        Debug.Print fileName
        fileName = Dir()
    Loop
End Sub

फ़ाइल अस्तित्व जांच

मूल अस्तित्व जांच

dir_file_exists.bas
Function FileExists(filePath As String) As Boolean
    ' फ़ाइल मौजूद होने पर True, अन्यथा False लौटाता है
    FileExists = (Dir(filePath) <> "")
End Function

Sub TestFileExists()
    Dim testPath As String
    testPath = "C:\Temp\sample.xlsx"

    If FileExists(testPath) Then
        MsgBox "फ़ाइल मौजूद है!", vbInformation
    Else
        MsgBox "फ़ाइल नहीं मिली।", vbExclamation
    End If
End Sub

व्यावहारिक उदाहरण

सभी Excel फ़ाइलों से डेटा एकत्र करना

dir_collect_data.bas
Sub CollectExcelData()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    Dim summarySheet As Worksheet
    Dim outputRow As Long

    folderPath = "C:\MonthlyReports\"
    Set summarySheet = ThisWorkbook.Sheets("Summary")
    outputRow = 2

    ' Excel फ़ाइलें प्राप्त करें
    fileName = Dir(folderPath & "*.xlsx")

    Application.ScreenUpdating = False

    Do While fileName <> ""
        ' कार्यपुस्तिका खोलें
        Set wb = Workbooks.Open(folderPath & fileName, ReadOnly:=True)

        ' डेटा कॉपी करें
        summarySheet.Cells(outputRow, 1).Value = fileName
        summarySheet.Cells(outputRow, 2).Value = wb.Sheets(1).Range("A1").Value

        ' कार्यपुस्तिका बंद करें
        wb.Close SaveChanges:=False

        outputRow = outputRow + 1
        fileName = Dir()
    Loop

    Application.ScreenUpdating = True
    MsgBox "डेटा संग्रह पूर्ण!", vbInformation
End Sub

सारांश

Dir फ़ंक्शन VBA में फ़ाइल संचालन के लिए एक शक्तिशाली लेकिन सरल उपकरण है:

  • वाइल्डकार्ड (*, ?) के साथ पैटर्न मिलान
  • पथ के साथ एक बार कॉल करें, फिर बाद की फ़ाइलों के लिए बिना आर्गुमेंट के
  • जब कोई और फ़ाइल नहीं मिलती तो खाली स्ट्रिंग लौटाता है
  • जटिल संचालन के लिए FileSystemObject पर विचार करें

अपने VBA प्रोजेक्ट्स में विभिन्न फ़ाइल संचालन को कुशलतापूर्वक संभालने के लिए इन मूल बातों में महारत हासिल करें।

#VBA #Dir फ़ंक्शन #फ़ाइल संचालन #फ़ोल्डर संचालन