एक्सेल VBA में FileSystemObject का उपयोग करना

एक्सेल VBA में FileSystemObject (FSO) का उपयोग करना

FileSystemObject (FSO) आपको अपने कंप्यूटर के फाइल सिस्टम तक पहुँचने के लिए कार्यों की एक पूरी श्रृंखला तक पहुँच प्रदान करता है। इस ऑब्जेक्ट का उपयोग करके, आप आसानी से फ़ाइलों, फ़ोल्डरों और ड्राइव तक पहुँच सकते हैं, और फ़ाइलों को पढ़ और लिख भी सकते हैं।

आपके द्वारा पारंपरिक VBA में कई FSO फ़ंक्शन लिखे जा सकते हैं, लेकिन इसके लिए अधिक कोडिंग की आवश्यकता होगी, और आने वाले डेवलपर के लिए इसे बनाए रखना और समझना अधिक कठिन होगा। एफएसओ एक आजमाया हुआ और परखा हुआ एपीआई (एप्लीकेशन प्रोग्रामिंग इंटरफेस) है और यह आपके अपने कोड से ज्यादा विश्वसनीय है। इसका उपयोग करना आसान है और तैयार और उपलब्ध है।

FSO आपके कंप्यूटर पर मौजूद अंतर्राष्ट्रीय मानकों और सेटिंग्स के अनुसार काम करता है। यदि आप अपने एक्सेल एप्लिकेशन को विश्व स्तर पर वितरित कर रहे हैं तो एफएसओ का उपयोग करने से देशों के बीच सेटिंग्स में किसी भी अंतर का ध्यान रखा जाएगा, जिसे करने में आपके अपने कोड को परेशानी होगी।

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

एक फाइलसिस्टमऑब्जेक्ट बनाना

FileSytemObject एक्सेल VBA का हिस्सा नहीं है। आप वीबीए में ऑब्जेक्ट (देर से बाध्यकारी) बनाकर एफएसओ का उपयोग कर सकते हैं:

123 उप क्रिएटएफएसओ ()MyFSO = CreateObject ("Scripting.FileSystemObject") सेट करेंअंत उप

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

संदर्भ जोड़ने के लिए, आपको विजुअल बेसिक एडिटर (वीबीई) में प्रवेश करने के लिए Alt-F11 दबाएं, और फिर वीबीई मेनू से 'टूल्स|संदर्भ' का उपयोग करें। प्रासंगिक संदर्भ (नीचे देखें) का चयन करने के लिए यह आपके लिए एक पॉप-अप विंडो प्रदर्शित करेगा।

उपलब्ध संदर्भों की सूची को तब तक नीचे स्क्रॉल करें जब तक आप 'Microsoft स्क्रिप्टिंग रनटाइम' नहीं देख सकते। बॉक्स पर टिक करें और ओके पर क्लिक करें, और लाइब्रेरी अब आपके एप्लिकेशन का हिस्सा है।

DLL लाइब्रेरी फ़ाइल का स्थान C:\Windows\SysWOW64\scrrun.dll . है

यदि आप अपना आवेदन अन्य सहकर्मियों या स्थानों को वितरित कर रहे हैं, तो यह आवश्यक है कि उनके पास यह फ़ाइल उनके कंप्यूटर पर सही स्थान पर हो, अन्यथा आपका कोड त्रुटिपूर्ण होगा।

फ़ाइल मौजूद है या नहीं, यह जाँचने के लिए Dir कमांड का उपयोग करके 'वर्कबुक ओपन' इवेंट पर एरर ट्रैप लगाने लायक है। यदि यह अनुपस्थित है, तो एक चेतावनी संदेश दें और एक्सेल फाइल को बंद कर दें।

एक बार संदर्भ जोड़ने के बाद, आप FSO बनाने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:

123 सब टेस्टएफएसओ ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOअंत उप

इस लेख के सभी उदाहरण FSO बनाने के लिए इस पद्धति का उपयोग करेंगे।

FSO के पास कई विधियाँ और गुण उपलब्ध हैं। वे क्या कर सकते हैं, इसके अनुसार इन्हें यहां खंडों में विभाजित किया गया है।

'मौजूद' विधियों का उपयोग करना

ड्राइव, फोल्डर या फाइल मौजूद है या नहीं यह जांचने के लिए आप FSO पद्धति का उपयोग कर सकते हैं। इन विधियों का उपयोग करना आसान है और केवल एक पैरामीटर की आवश्यकता होती है।

123456 उप CheckExistance ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMsgBox MyFSO.DriveExists("C:")MsgBox MyFSO.FolderExists("C:\temp\")MsgBox MyFSO.FileExists("C:\temp\testfile.txt")अंत उप

ये सभी कथन यह मानकर 'सत्य' वापस आ जाएंगे कि आपके कंप्यूटर में C: ड्राइव है, उस पर एक फ़ोल्डर है जिसे 'Temp' कहा जाता है और 'testfile.txt' नामक Temp फ़ोल्डर में एक फ़ाइल है।

पैरामीटर में टेक्स्ट स्ट्रिंग केस-संवेदी नहीं हैं। आप इनमें से किसी भी तरीके से वाइल्डकार्ड का उपयोग नहीं कर सकते।

आप किसी फ़ोल्डर या फ़ाइल स्थान का वर्णन करने के लिए URL (यूनिफ़ॉर्म रिसोर्स लोकेटर) का उपयोग नहीं कर सकते। FSO पूरी तरह से विंडोज ऑपरेटिंग सिस्टम और उस पर फाइल सिस्टम पर काम करता है। बाहरी सर्वर स्थान के लिए, आपको सबसे पहले ड्राइव को मैप करना होगा, और फिर ड्राइव पथ का उपयोग करना होगा।

'प्राप्त' विधियों का उपयोग करना

फ़ाइल और पथ के बारे में जानकारी प्राप्त करने के लिए FSO के पास कई विधियाँ हैं, या तो पथ और फ़ाइल को विभाजित करना, या फ़ाइल या फ़ोल्डर की जानकारी प्राप्त करना जैसे कि बनाई गई तिथि या दिनांक संशोधित करना।

निरपेक्षपथनाम प्राप्त करें

यह निर्दिष्ट ड्राइव की जड़ से एक पूर्ण पथ प्रदान करेगा।

सिंटैक्स है:

गेटएब्सोल्यूटपाथनाम (पाथस्पेक)

12345 उप निरपेक्षपथ ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में Pthपीएच = "सी:…"MsgBox MyFSO.GetAbsolutePathName(Pth)अंत उप

यह एक स्ट्रिंग 'सी: \ उपयोगकर्ता \ रिचर्ड \ दस्तावेज़' लौटाएगा। ऐसा इसलिए है क्योंकि पथ को सी के रूप में निर्दिष्ट किया गया है: उसके बाद तीन बिंदु। प्रत्येक बिंदु फ़ोल्डर संरचना के भीतर अगले स्तर को दर्शाता है।

GetBaseName

यह निर्दिष्ट फ़ाइल या फ़ोल्डर का नाम देता है।

सिंटैक्स है:

GetBaseName(पथ)

12345 उप बेसनाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में PthPth = "सी:\temp\testfile.txt"MsgBox MyFSO.GetBaseName(Pth)अंत उप

यह कोड 'टेस्टफाइल' लौटाएगा। विधि पथ नाम में अंतिम खंड लौटाती है। अगर यह एक फाइल है, तो यह फाइल प्रत्यय वापस नहीं करता है।

यदि पथ नहीं मिल सकता है तो एक रिक्त स्ट्रिंग वापस कर दी जाएगी।

गेटड्राइव

यह आपको निर्दिष्ट ड्राइव अक्षर के आधार पर ड्राइव जानकारी तक पहुंचने के लिए कोड का उपयोग करने की अनुमति देता है।

सिंटैक्स है:

गेटड्राइव (ड्राइवस्पेक)

123456 उप ड्राइवइन्फो ()मंद MyFSO नई FileSystemObject के रूप में, Pth स्ट्रिंग के रूप में, डॉ ड्राइव के रूप मेंपीएच = "सी:"डॉ सेट करें = MyFSO.GetDrive(Pth)MsgBox डॉ.फ्रीस्पेसअंत उप

यह विधि निर्दिष्ट ड्राइव के आधार पर एक ड्राइव ऑब्जेक्ट लौटाती है। आप इस ऑब्जेक्ट का उपयोग ड्राइव के बारे में जानकारी प्राप्त करने के लिए कर सकते हैं, जैसे कि उपलब्ध खाली स्थान।

VBA कोड उदाहरण खोज कर थक गए हैं? ऑटोमैक्रो का प्रयास करें!

गेटड्राइवनाम

यह विधि ड्राइव नाम को पथ / फ़ाइल नाम स्ट्रिंग से अलग कर देगी।

सिंटैक्स है:

गेटड्राइवनाम (पथ)

12345 उप ड्राइवनाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में PthPth = "सी:\temp\testfile.txt"MsgBox MyFSO.GetDriveName(Pth)अंत उप

यह 'सी:' लौटाएगा

GetExtensionName

यह निर्दिष्ट पथ में फ़ाइल प्रत्यय लौटाएगा।

सिंटैक्स है:

GetExtensionName (पथ)

12345 उप एक्सटेंशननाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में PthPth = "सी:\temp\testfile.txt"MsgBox MyFSO.GetExtensionName(Pth)अंत उप

यह 'txt' लौटाएगा।

यदि कोई फ़ाइल निर्दिष्ट नहीं है, तो एक खाली स्ट्रिंग वापस कर दी जाएगी।

दस्तावेज लें

यह विधि एक फ़ाइल ऑब्जेक्ट लौटाती है, जिसमें फ़ाइल के बारे में विभिन्न जानकारी होती है।

सिंटैक्स है:

दस्तावेज लें (फाइलपेक)

123456 उप फाइलइन्फो ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में Pth, फ़ाइल के रूप में FnPth = "सी:\temp\testfile.txt"Fn = MyFSO.GetFile(Pth) सेट करेंMsgBox Fn.DateCreatedअंत उप

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

12345 उप फ़ाइल नाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में PthPth = "सी:\temp\testfile.txt"MsgBox MyFSO.GetFileName(Pth)अंत उप

यह 'testfile.txt' लौटाएगा।

GetFolder

यह निर्दिष्ट पथ में आधार फ़ोल्डर के लिए एक फ़ोल्डर ऑब्जेक्ट बनाता है। पथ में केवल फ़ोल्डर नाम होने चाहिए। कोई फ़ाइल नाम शामिल नहीं किया जाना चाहिए अन्यथा एक त्रुटि उत्पन्न होगी।

सिंटैक्स है:

GetFolder (फोल्डरस्पेक)

123456 उप फ़ोल्डरइन्फो ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में Pth, फ़ोल्डर के रूप में Foपीएच = "सी: \ अस्थायी"Fo सेट करें = MyFSO.GetFolder(Pth)MsgBox Fo.DateCreatedअंत उप

फोल्डर ऑब्जेक्ट में विभिन्न जानकारी होती है जिसे एक्सेस किया जा सकता है। इस मामले में, यह उस दिनांक को लौटाता है जब फ़ोल्डर बनाया गया था।

आप इस विधि का उपयोग किसी दिए गए फ़ोल्डर में सभी फ़ाइल नामों को पुनः प्राप्त करने के लिए भी कर सकते हैं:

12345678 उप फ़ाइल नाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में Pth, फ़ोल्डर के रूप में Fo, फ़ाइल के रूप में Fnपीएच = "सी: \ अस्थायी"Fo सेट करें = MyFSO.GetFolder(Pth)Fo.Files में प्रत्येक Fn के लिएMsgBox Fn.Nameअगला एफएनअंत उप

यह कोड 'टेम्प' फ़ोल्डर के माध्यम से पुनरावृति करेगा और प्रत्येक फ़ाइल का नाम प्रदर्शित करेगा।

GetParentFolderName

यह विधि फ़ोल्डर नाम को फ़ोल्डर पदानुक्रम में अगले स्तर पर वापस कर देगी।

सिंटैक्स है:

GetParentFolderName (पथ)

12345 उप फ़ोल्डरनाम ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद माईएफएसओ, स्ट्रिंग के रूप में पीएच, फ़ोल्डर के रूप में एफओपीएच = "सी: \ उपयोगकर्ता \ रिचर्ड"MsgBox MyFSO.GetParentFolderName(Pth)अंत उप

यह 'उपयोगकर्ता' लौटाएगा क्योंकि यह 'रिचर्ड' फ़ोल्डर के लिए 'पैरेंट' है।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

'बनाएँ' विधियों का उपयोग करना

FSO से आप एक नया फ़ोल्डर और पथ बना सकते हैं और एक टेक्स्ट फ़ाइल बना सकते हैं।

फोल्डर बनाएं

आप बनाने के लिए एक नया फ़ोल्डर पथ नाम निर्दिष्ट कर सकते हैं। इसका एक खतरा यह है कि यदि फ़ोल्डर पहले से मौजूद है, तो एक त्रुटि होगी। आप यह सुनिश्चित करने के लिए 'FolderExists' विधि का उपयोग कर सकते हैं कि ऐसा नहीं होगा।

सिंटैक्स है:

फोल्डर बनाएं(फ़ोल्डर का नाम)

1234567 उप CreateNewFolder ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में Pthपीएच = "सी: \ अस्थायी \ MyFolder"यदि MyFSO.FolderExists(Pth) = False तबMyFSO.CreateFolder (Pth)अगर अंतअंत उप

यह कोड मौजूदा पथ 'C:\temp' के तहत 'MyFolder' नामक एक नया फ़ोल्डर बनाएगा।

टेक्स्टफाइल बनाएं

यह विधि आपको एक साधारण टेक्स्ट फ़ाइल बनाने और उसमें सीधे लिखने में सक्षम बनाती है।

सिंटैक्स है:

टेक्स्टफाइल बनाएं (फ़ाइल का नाम, [ अधिलेखित, [ यूनिकोड ]])

1234567 उप CreateTextFile ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSO, स्ट्रिंग के रूप में PthPth = "सी:\temp\Myfile.txt"Fn = MyFSO.CreateTextFile (Pth, True) सेट करेंFn.लिखें "यहां मेरा अपना टेक्स्ट जोड़ें" और vbLf और "यह दूसरी पंक्ति है"Fn.बंदअंत उप

यह कोड 'C:' ड्राइव के 'Temp' फोल्डर में 'Myfile.txt' नाम की टेक्स्ट फाइल बनाता है और फिर उसमें टेक्स्ट की दो लाइन लिखता है।

ध्यान दें कि एक लाइन फीड कैरेक्टर को लिखे जा रहे स्ट्रिंग में जोड़ा जाता है।

यदि आप जिस पथ पर लिख रहे हैं वह मौजूद नहीं है तो एक त्रुटि होगी। फ़ाइल बनाने से पहले इसे जांचने के लिए आप 'FolderExists' पद्धति का उपयोग कर सकते हैं।

यदि आवश्यक हो तो मौजूदा फ़ाइल को अधिलेखित करने के लिए एक वैकल्पिक पैरामीटर है - यह सही या गलत हो सकता है। डिफ़ॉल्ट सत्य है।

'कॉपी' विधियों का उपयोग करना

आप किसी फ़ाइल या फ़ोल्डर को किसी अन्य स्थान पर कॉपी करने के लिए इन विधियों का उपयोग कर सकते हैं।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

प्रतिलिपि फ़ाइल

यह विधि एक फ़ाइल को एक फ़ोल्डर स्थान से दूसरे स्थान पर कॉपी करेगी। ध्यान दें कि यदि गंतव्य स्थान में केवल-पढ़ने के लिए विशेषता सेट है, तो प्रतिलिपि विफल हो जाएगी।

सिंटैक्स है:

प्रतिलिपि फ़ाइल स्रोत, गंतव्य, [ अधिलेखित ]

1234 उप कॉपीफाइल ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.CopyFile "C:\temp\*.txt", "C:\temp\myfolder\", सचअंत उप

यह कोड सभी टेक्स्ट (txt) फाइलों को 'C:\temp' पर 'C:\temp\myfolder\' में कॉपी कर देगा, जहां आवश्यक हो वहां फाइल को ओवरराइट कर देगा। अधिलेखित करने के लिए डिफ़ॉल्ट सेटिंग सही है।

आप फ़ाइल नामों के लिए तारक (*) वाइल्डकार्ड का उपयोग कर सकते हैं, लेकिन आप एकल वर्णों का प्रतिनिधित्व करने के लिए प्रश्न चिह्न (?) वाइल्डकार्ड का उपयोग नहीं कर सकते।

फोल्डर कॉपी करें

आप इस विधि का उपयोग संपूर्ण फ़ोल्डर को एक स्थान से दूसरे स्थान पर कॉपी करने के लिए कर सकते हैं।

सिंटैक्स है:

फोल्डर कॉपी करें स्रोत, गंतव्य, [ अधिलेखित ]

1234 उप कॉपीफ़ोल्डर ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.CopyFolder "C:\temp\*", "C:\users\richard\"अंत उप

यह कोड 'C:\temp' के नीचे के सभी फोल्डर और फाइलों को 'C:\users\richard' में कॉपी करता है। बनाया गया नया फ़ोल्डर 'C:\users\richard\myfolder' होगा क्योंकि 'C:\temp' में 'myfolder' नामक एक फ़ोल्डर था।

इस पद्धति का उपयोग करते समय चार संभावित परिणाम होते हैं:

  • यदि गंतव्य मौजूद नहीं है, तो स्रोत फ़ोल्डर और सामग्री की प्रतिलिपि बनाई जाती है।
  • यदि गंतव्य पहले से मौजूद है, तो एक त्रुटि उत्पन्न होती है।
  • यदि गंतव्य एक फ़ोल्डर है, तो स्रोत फ़ोल्डर और उसकी सामग्री की प्रतिलिपि बनाई जाएगी। यदि ओवरराइट को गलत पर सेट किया गया है और गंतव्य में फ़ाइल की एक प्रति पहले से मौजूद है तो एक त्रुटि उत्पन्न होगी।
  • यदि गंतव्य को केवल पढ़ने के लिए सेट किया गया है, तो ओवरराइट को गलत पर सेट करने पर एक त्रुटि उत्पन्न होगी।

यह विधि पहली त्रुटि पर रुक जाती है जो इसका सामना करती है। त्रुटि होने से पहले सफल हुई किसी भी क्रिया का कोई रोलबैक नहीं है।

'मूव' विधियों का उपयोग करना

इन विधियों का उपयोग फ़ाइलों या फ़ोल्डरों को अन्य स्थानों पर ले जाने के लिए किया जा सकता है। यह एक स्थान से काटने और दूसरे स्थान पर चिपकाने जैसा ही है। ध्यान दें कि यदि स्थानांतरित की जाने वाली फ़ाइल खुली है, तो मूव विधि त्रुटि के साथ विफल हो जाएगी।

मूवफाइल

इस विधि का उपयोग किसी विशिष्ट फ़ाइल को किसी अन्य स्थान पर ले जाने के लिए किया जाता है। स्रोत के अंतिम पथ घटक में वाइल्डकार्ड की अनुमति है।

सिंटैक्स है:

मूवफाइल स्रोत, गंतव्य

1234 उप मूवएफाइल ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.MoveFile "C:\temp\*", "C:\temp\myfolder"अंत उप

यह कोड 'C:\temp' पर मिलने वाली सभी फाइलों को 'C:\temp\myfolder' में ले जाता है।

स्रोत और गंतव्य फ़ोल्डर मौजूद होने चाहिए, क्योंकि गंतव्य फ़ोल्डर स्वचालित रूप से नहीं बनता है।

यह विधि पहली त्रुटि पर रुक जाती है जो इसका सामना करती है। त्रुटि होने से पहले सफल हुई किसी भी क्रिया का कोई रोलबैक नहीं है।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

मूव फोल्डर

यह विधि एक विशिष्ट फ़ोल्डर को एक स्थान से दूसरे स्थान पर ले जाती है।

सिंटैक्स है:

मूव फोल्डर (स्रोत, गंतव्य)

1234 सब मूवएफ़ोल्डर ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.MoveFolder "C:\temp\myfolder", "C:\temp\mydestination"अंत उप

यह कोड फ़ोल्डर 'myfolder' और सामग्री को 'mydestination' फ़ोल्डर में ले जाता है। 'myfolder' को प्रभावी ढंग से हटा दिया जाता है और 'mydestination' को 'myfolder' की सामग्री के साथ बनाया जाता है।

यदि गंतव्य फ़ोल्डर पहले से मौजूद है तो एक त्रुटि उत्पन्न होती है।

'हटाएं' विधियों का उपयोग करना

इन विधियों का उपयोग फ़ाइलों या फ़ोल्डरों को हटाने के लिए किया जाता है। उनका उपयोग सावधानी से किया जाना चाहिए क्योंकि कुछ भी गलत होने पर कोई रोलबैक या पूर्ववत तरीके नहीं हैं।

फ़ाइल नष्ट करें

यह वाइल्डकार्ड का उपयोग करके अलग-अलग फ़ाइलों या फ़ाइलों के समूह को हटा देता है।

सिंटैक्स है:

फ़ाइल नष्ट करें फाइलस्पेक, [ बल ]

1234 उप DeleteFiles ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.DeleteFile "C:\temp\*"अंत उप

यह कोड 'C:\temp' फोल्डर की सभी फाइलों को डिलीट कर देगा

बल पैरामीटर वैकल्पिक है और सही या गलत पर सेट है। यदि यह सही पर सेट है, तो केवल-पढ़ने के लिए फ़ाइलें हटा दी जाएंगी। डिफॉल्ट गलत है।

फोल्डर हटा दें

यह विधि एक निर्दिष्ट फ़ोल्डर और उसकी सामग्री को हटा देती है।

सिंटैक्स है:

फोल्डर हटा दें फोल्डरस्पेक, [ बल ]

1234 उप DeleteFolders ()नई फाइलसिस्टम ऑब्जेक्ट के रूप में मंद MyFSOMyFSO.DeleteFolder "C:\temp\MyDestination"अंत उप

यह कोड 'MyDestination' फोल्डर और उस फोल्डर की सभी फाइलों को डिलीट कर देगा। फ़ोल्डर 'अस्थायी' रहेगा।

बल पैरामीटर वैकल्पिक है और सही या गलत पर सेट है। यदि यह सही पर सेट है, तो केवल-पढ़ने के लिए फ़ोल्डर हटा दिए जाएंगे। डिफॉल्ट गलत है।

पथ के अंतिम घटक में वाइल्डकार्ड का उपयोग किया जा सकता है। अगर फोल्डर नहीं मिलता है तो एक एरर आएगा।

यह विधि पहली त्रुटि पर रुक जाती है जो इसका सामना करती है। त्रुटि होने से पहले सफल हुई किसी भी क्रिया का कोई रोलबैक नहीं है।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

FSO में अन्य तरीके

ओपनएएसटेक्स्टस्ट्रीम।

यह विधि एक निर्दिष्ट फ़ाइल को टेक्स्ट स्ट्रीम ऑब्जेक्ट के रूप में खोलती है और इसे पढ़ने या लिखने की अनुमति देती है। इस पद्धति का लाभ यह है कि यह किसी भी फ़ाइल प्रकार को खोल सकता है और उपलब्ध पाठ को निकाल सकता है।

सिंटैक्स है:

ओपनएएसटेक्स्टस्ट्रीम ([ आयमोड, [ प्रारूप ]])

'आयमोड' पैरामीटर केवल पढ़ने के लिए (1), पढ़ने/लिखने (2), और जोड़ने (8) की अनुमति देता है। पठन/लेखन पैरामीटर फ़ाइल को अधिलेखित कर देता है।

सिस्टम डिफ़ॉल्ट के लिए 'प्रारूप' पैरामीटर -2 पर सेट है, -1 फ़ाइल को यूनिकोड के रूप में खोलने के लिए, और 0 फ़ाइल को ASCII (सूचना इंटरचेंज के लिए अमेरिकी मानक कोड) के रूप में खोलने के लिए सेट किया गया है।

1234567891011 उप टेक्स्टस्ट्रीम ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFile("C:\temp\myfile.txt")ts = f.OpenAsTextStream(2) सेट करेंts. "मेरा नया पाठ" लिखेंटीएस.बंदसेट ts = f.OpenAsTextStream(1)एस = टीएस। रीडलाइनसंदेश बॉक्सटीएस.बंदअंत उप

यह कोड एक मौजूदा टेक्स्ट फ़ाइल प्राप्त करता है और इसे 'गेटफाइल' विधि का उपयोग करके ऑब्जेक्ट के रूप में बनाता है। इसके बाद यह टेक्स्ट स्ट्रीम को रीड / राइट (2) के रूप में खोलता है और टेक्स्ट की एक लाइन लिखता है। फिर फ़ाइल को बंद कर दिया जाता है और रीड (1) के रूप में फिर से खोला जाता है और उसमें से एक लाइन पढ़ी जाती है, जिसे बाद में एक संदेश बॉक्स के रूप में प्रदर्शित किया जाता है।

ध्यान दें कि संदेश बॉक्स में प्रदर्शित होने से पहले रीड लाइन को एक चर में रखा जाना चाहिए।

बिल्डपाथ

यह विधि किसी फ़ोल्डर या फ़ाइल नाम को मौजूदा फ़ोल्डर पथ के अंत में जोड़ देगी। यह केवल एक टेक्स्ट स्ट्रिंग बनाता है और वास्तव में नया फ़ोल्डर नहीं बनाता है।

सिंटैक्स है:

बिल्डपाथ (पथ, नाम)

12345 उप बिल्डपथ ()मंद MyFSO नई FileSystemObject के रूप मेंnp = MyFSO.BuildPath("C:\temp", "ANewFolder")संदेशबॉक्स एनपीअंत उप

यह 'C:\temp\ANewFolder' प्रदर्शित करेगा। हालाँकि, यदि आप वास्तव में इस फ़ोल्डर का उपयोग करना चाहते हैं, तो आपको 'CreateFolder' पद्धति का उपयोग करने की आवश्यकता है।

ओपनटेक्स्टफाइल

यह विधि निर्धारित मापदंडों के अनुसार फाइलों को खोलने और पढ़ने या लिखने की अनुमति देती है। यह OpenAsTextStream विधि के समान कार्य करता है।

सिंटैक्स है:

ओपनटेक्स्टफाइल (फ़ाइल का नाम, [ आयमोड, [ सर्जन करना, [ प्रारूप ]]])

'iomode' पैरामीटर ForReading, ForWriting और ForAppending की अनुमति देता है। ForWriting पैरामीटर फ़ाइल को अधिलेखित कर देता है।

'बनाएं' पैरामीटर एक बूलियन मान है। सही का अर्थ है कि यदि निर्दिष्ट फ़ाइल नाम मौजूद नहीं है तो एक नई फ़ाइल बनाई जाएगी। असत्य का अर्थ है कि यदि फ़ाइल नाम नहीं मिला तो कोई फ़ाइल नहीं बनाई जाएगी। डिफॉल्ट गलत है।

फ़ाइल ASCII या यूनिकोड के आधार पर 'प्रारूप' पैरामीटर को TristateFalse, TristateMixed, TristateTrue, और TristateUseDefault पर सेट किया जा सकता है।

1234567 उप OpenTxtFile ()मंद MyFSO नई FileSystemObject के रूप मेंसेट ts = MyFSO.OpenTextFile("C:\temp\myfile.txt", ForReading, False, TristateUseDefault)एस = टीएस। रीडलाइनसंदेश बॉक्सटीएस.बंदअंत उप

यह कोड टेक्स्ट फ़ाइल 'myfile.txt' से एक लाइन पढ़ेगा।

OpenTextFile विधि का OpenAsTextStreamMethod पर एक लाभ यह है कि इसमें पैरामीटर के लिए ड्रॉप डाउन हैं, जो विभिन्न पैरामीटर विकल्पों के लिए उपयुक्त संख्यात्मक मानों को याद रखने की कोशिश करने से अधिक सार्थक हैं।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

FSO . के गुण

ड्राइव

यह गुण आपके कंप्यूटर पर उपलब्ध ड्राइव का संग्रह रखता है।

1234567 उप डीआरवी ()डिम MyFSO नई फाइलसिस्टम ऑब्जेक्ट के रूप में, डी ड्राइव के रूप मेंडॉ सेट करें = MyFSO.Drivesप्रत्येक d के लिए Dr . मेंMsgBox d.DriveLetterअगला डीअंत उप

यह कोड आपके कंप्यूटर पर उपलब्ध प्रत्येक ड्राइव अक्षर को लौटा देगा।

नाम

यह निर्दिष्ट फ़ाइल या फ़ोल्डर का नाम देता है।

123456789 उप नाम उदाहरण ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Name और "ऑन ड्राइव" और UCase (f.Drive) और vbCrLfi = i और "बनाया गया:" और f.DateCreated और vbCrLfi = i और "पिछली बार एक्सेस किया गया:" और f.DateLastAccessed और vbCrLfi = i और "अंतिम संशोधित:" और f.DateLastModifiedसंदेशबॉक्स मैंअंत उप

यह कोड डिस्क गुण का उपयोग करके फ़ाइल का नाम और उसके बारे में जानकारी देगा।

पथ

पथ गुण फ़ाइल विनिर्देश से पथ को अलग कर देगा।

123456789 उप पथ उदाहरण ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Path और f.Name और "ऑन ड्राइव" और UCase(f.Drive) और vbCrLfi = i और "बनाया गया:" और f.DateCreated और vbCrLfi = i और "पिछली बार एक्सेस किया गया:" और f.DateLastAccessed और vbCrLfi = i और "अंतिम संशोधित:" और f.DateLastModifiedसंदेशबॉक्स मैंअंत उप

यह उदाहरण नाम उदाहरण की तरह ही काम करता है, सिवाय इसके कि यह अब फ़ाइल के लिए पथ प्रदान करता है।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

आकार

आकार संपत्ति फ़ोल्डर या फ़ाइल का आकार देगी।

12345 उप FSize ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFolder("C:\temp\")MsgBox f.Sizeअंत उप

ऊपर दिया गया यह कोड 'C:\temp\' फ़ोल्डर का आकार लौटाएगा।

12345 उप FSize ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.Sizeअंत उप

ऊपर दिया गया यह कोड 'myfile.txt' फ़ाइल का आकार लौटाएगा।

प्रकार

प्रकार संपत्ति फ़ाइल या फ़ोल्डर प्रकार के लिए पाठ लौटाएगी।

12345 उप एफ टाइप ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFolder("C:\temp\")MsgBox f.Typeअंत उप

ऊपर दिया गया यह कोड 'फाइल फोल्डर' टेक्स्ट लौटाएगा।

12345 उप एफ टाइप ()मंद MyFSO नई FileSystemObject के रूप मेंसेट f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.Typeअंत उप

ऊपर दिया गया यह कोड टेक्स्ट 'टेक्स्ट डॉक्यूमेंट' लौटाएगा।

प्रत्येक उदाहरण में 'GetFolder' और 'GetFile' के उपयोग पर ध्यान दें।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave