FileSystemObject

जबकि VBA फ़ाइल और फ़ोल्डर संचालन के लिए Dir जैसे पारंपरिक फ़ंक्शन और Kill जैसे स्टेटमेंट प्रदान करता है, FileSystemObject (FSO) एक अधिक शक्तिशाली और लचीला दृष्टिकोण प्रदान करता है।

FileSystemObject क्या है?

FileSystemObject Windows फ़ाइल सिस्टम तक पहुंचने के लिए एक ऑब्जेक्ट है। यह Microsoft Scripting Runtime लाइब्रेरी का हिस्सा है और फ़ाइलों और फ़ोल्डरों को बनाने, हटाने, कॉपी करने, स्थानांतरित करने और पढ़ने/लिखने के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है।

FileSystemObject की मुख्य विशेषताएं

  • ऑब्जेक्ट-ओरिएंटेड: फ़ाइलों और फ़ोल्डरों को ऑब्जेक्ट्स के रूप में मानता है
  • सुविधा संपन्न: लगभग सभी फ़ाइल और फ़ोल्डर संचालन का समर्थन करता है
  • टेक्स्ट फ़ाइल हैंडलिंग: टेक्स्ट फ़ाइलों का सरल पढ़ना और लिखना
संदर्भ सेटअप के बारे में

FileSystemObject के लिए “Microsoft Scripting Runtime” का संदर्भ सेट करने की सिफारिश की जाती है, लेकिन आप CreateObject("Scripting.FileSystemObject") का उपयोग करके संदर्भ सेटअप के बिना भी इसका उपयोग कर सकते हैं।

FileSystemObject का मूल उपयोग

इंस्टेंस बनाना

FileSystemObject का उपयोग करने के लिए, पहले आपको एक इंस्टेंस बनाना होगा।

CreateObject का उपयोग (अनुशंसित)

यह विधि संदर्भ सेटअप के बिना काम करती है, जिससे यह विभिन्न परिवेशों में अधिक पोर्टेबल हो जाती है।

CreateObject
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

' आपका कोड यहां...

' सफाई
Set fso = Nothing

फ़ाइल संचालन

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

फ़ाइल
Sub CheckFileExists()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim filePath As String
    filePath = "C:\Temp\sample.txt"

    If fso.FileExists(filePath) Then
        MsgBox "फ़ाइल मौजूद है"
    Else
        MsgBox "फ़ाइल मौजूद नहीं है"
    End If

    Set fso = Nothing
End Sub

फ़ाइलें कॉपी करना

फ़ाइल
Sub CopyFile()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim sourceFile As String
    Dim destFile As String

    sourceFile = "C:\Temp\original.xlsx"
    destFile = "C:\Backup\copy.xlsx"

    ' फ़ाइल कॉपी करें (True ओवरराइट की अनुमति देता है)
    fso.CopyFile sourceFile, destFile, True

    MsgBox "फ़ाइल सफलतापूर्वक कॉपी हुई"

    Set fso = Nothing
End Sub

फ़ाइलें हटाना

फ़ाइल
Sub DeleteFile()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim filePath As String
    filePath = "C:\Temp\delete_me.txt"

    If fso.FileExists(filePath) Then
        ' फ़ाइल हटाएं (True जबरदस्ती हटाता है)
        fso.DeleteFile filePath, True
        MsgBox "फ़ाइल सफलतापूर्वक हटाई गई"
    Else
        MsgBox "फ़ाइल मौजूद नहीं है"
    End If

    Set fso = Nothing
End Sub
हटाना स्थायी है

जब आप DeleteFile से फ़ाइल हटाते हैं, तो यह स्थायी रूप से हटा दी जाती है और रीसायकल बिन में नहीं जाती। निष्पादन से पहले हमेशा पुष्टि शामिल करें।

फ़ोल्डर संचालन

फ़ोल्डर बनाना

फ़ोल्डर
Sub CreateFolder()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim folderPath As String
    folderPath = "C:\Temp\NewFolder"

    If Not fso.FolderExists(folderPath) Then
        fso.CreateFolder folderPath
        MsgBox "फ़ोल्डर सफलतापूर्वक बनाया गया"
    Else
        MsgBox "फ़ोल्डर पहले से मौजूद है"
    End If

    Set fso = Nothing
End Sub

फ़ोल्डर सामग्री सूचीबद्ध करना

फ़ोल्डर
Sub ListFolderContents()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim folderPath As String
    Dim folder As Object
    Dim file As Object

    folderPath = "C:\Documents"

    If fso.FolderExists(folderPath) Then
        Set folder = fso.GetFolder(folderPath)

        ' फ़ाइलें सूचीबद्ध करें
        Debug.Print "=== फ़ाइलें ==="
        For Each file In folder.Files
            Debug.Print file.Name & " (" & file.Size & " बाइट्स)"
        Next file
    End If

    Set fso = Nothing
End Sub

टेक्स्ट फ़ाइल संचालन

टेक्स्ट फ़ाइल में लिखना

टेक्स्ट
Sub WriteTextFile()
    Dim fso As Object
    Dim ts As Object

    Set fso = CreateObject("Scripting.FileSystemObject")

    ' नई फ़ाइल बनाएं (True = मौजूद होने पर ओवरराइट)
    Set ts = fso.CreateTextFile("C:\Temp\output.txt", True)

    ts.WriteLine "पंक्ति 1: नमस्ते, दुनिया!"
    ts.WriteLine "पंक्ति 2: यह VBA है।"

    ts.Close

    MsgBox "फ़ाइल सफलतापूर्वक लिखी गई"

    Set ts = Nothing
    Set fso = Nothing
End Sub

टेक्स्ट फ़ाइल पढ़ना

टेक्स्ट
Sub ReadTextFile()
    Dim fso As Object
    Dim ts As Object
    Dim content As String

    Set fso = CreateObject("Scripting.FileSystemObject")

    If fso.FileExists("C:\Temp\input.txt") Then
        ' पढ़ने के लिए खोलें (1 = ForReading)
        Set ts = fso.OpenTextFile("C:\Temp\input.txt", 1)

        ' पूरी सामग्री पढ़ें
        content = ts.ReadAll

        ts.Close

        Debug.Print content
    End If

    Set ts = Nothing
    Set fso = Nothing
End Sub

सारांश

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

  • पोर्टेबिलिटी के लिए CreateObject के साथ इंस्टेंस बनाएं
  • संचालन से पहले जांचने के लिए FileExists और FolderExists का उपयोग करें
  • हटाने के संचालन से सावधान रहें—वे स्थायी हैं
  • TextStream के साथ टेक्स्ट फ़ाइल संचालन सरल हैं

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

#VBA #FileSystemObject #फ़ाइल संचालन #फ़ोल्डर संचालन