एक्सेल 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' के उपयोग पर ध्यान दें।