Bu öğretici, FileSystemObject'in GetFolder ve GetFile yöntemlerinin nasıl kullanılacağını gösterecektir.
VBA FileSystemObject ile Klasör ve Dosya Özelliklerini Alın
GetFolder yöntemi, belirtilen yoldaki klasöre karşılık gelen bir Klasör nesnesi döndürür ve özelliklerine erişmenizi sağlar. GetFile yöntemi, belirtilen dosyayla aynı şeyi yapar.
VBA Referansını Ayarla
İlk olarak, FileSystemObjects kullanırken, VB komut dosyası çalışma zamanı kitaplığına bir başvuru ayarlamanız gerekebilir: Visual Basic Düzenleyicisini (ALT+F11) açın, açılır menüden Araçlar > Başvurular'ı seçin ve onay kutusunu işaretleyin. 'Microsoft Komut Dosyası Çalışma Zamanı'.
DosyaSistemNesnesi
İkinci olarak, FileSystemObject'i oluşturmalısınız:
12 | FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject") |
Artık GetFolder'a ve diğer FileSystemObject Yöntemlerine erişiminiz var.
GetFolder Yönteminin Kullanımı
Erişmek istediğiniz klasörü belirledikten sonra
1 | set fld = FSO.GetFolder("C:\Src\") |
kopyalayabilirsiniz:
1 | fld.Copy "C:\NewFolder\" |
Oynat şunu:
1 | fld. "C:\NewFolder\" öğesini taşıyın |
silin:
1 | fld.Sil |
veya içinde yeni bir metin dosyası oluşturun:
1 | fld.CreateTextFile “NewTextFile.txt” |
Bu yöntemi kullanarak, klasörün öznitelikleri (fld.Attributes), oluşturulduğu tarih ve saat (fld.DateCreated), son erişildiği (fld.DateLastAccessed), son değiştirildiği (fld.DateLastModified) gibi klasör özelliklerine erişebilirsiniz. ), sürücüsünün harfi (fld.Drive), adı ve kısa adı (fld.Name, fld.ShortName), yolu ve kısa yolu (fld.Path, fld.ShortPath), boyutu (fld.Size), yazın (fld.Type), üst klasörü (fld.ParentFolder), bunun bir kök klasör (fld.IsRootFolder) olup olmadığını kontrol edin veya dosyaları (fld.Files) veya alt klasörleri (fld. Alt Klasörler).
Bunların hepsini bir prosedürde bir araya getirmek şöyle görünecektir:
123456789101112131415161718192021222324 | Alt FSOGetFolder()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")set fld = FSO.GetFolder("C:\Src\")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.KısaYolDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.Typefld.SubFolders'daki Her Katlama İçinHata ayıklama. Katlamayı yazdır.AdSonraki katHer fil için fld.FilesDebug.Print dosya.AdSonraki dosyaAlt Bitiş |
VBA hemen penceresinde Debug.Print komutunun sonucunu görmek için Ctrl+G tuşlarına basmanız gerektiğini lütfen unutmayın.
GetParentFolderName Yöntemi
Yukarıda belirtilen yola alternatif olarak, bu kodu kullanarak bir klasörün üst klasörünün adına erişebilirsiniz:
1234 | FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")ParentFold= FSO.GetParentFolderName("C:\ParentTest\Test\") |
ParentFold bu durumda “C:\ParentTest\” olacaktır.
Lütfen bu yöntemin yolu çözmeyeceğini ve belirtilen yolun varlığını kontrol etmediğini unutmayın.
GetSpecialFolder Yöntemi
GetSpecialFolder yöntemi ile argüman olarak 0, 1 veya 2 ileterek Windows klasör yolunuzu (Windows işletim sistemi tarafından yüklenen dosyalar ile), sistem klasör yolunuzu (kitaplıklar, yazı tipleri ve aygıt sürücüleri ile birlikte) ve geçici olarak alabilirsiniz. klasör yolu (geçici dosyaları depolamak için kullanılan klasör).
1234567 | Alt FSOGetSpecialFolder()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder(0) 'Sonuç şu şekilde olabilir: C:\Windows\System32Alt Bitiş |
GetFile Yöntemi
GetFile yöntemini GetFolder yöntemine çok benzer bir şekilde kullanabilirsiniz. Erişmek istediğiniz dosyayı belirledikten sonra
1 | set fil = FSO.GetFile("C:\Src\Test.xlsx") |
kopyalayabilirsiniz:
1 | fil.Kopyala "C:\Dst\" |
Oynat şunu:
1 | fil. "C:\Dst\" öğesini taşıyın |
silin:
1 | fil.Sil |
veya bir TextStream nesnesi olarak açın:
1 | fil.OpenAsTextStream |
Dosyanın öznitelikleri, oluşturulduğu tarih ve saat, son erişim veya son değiştirilme tarihi, sürücüsünün harfi, adı ve kısa adı, yolu ve kısa yolu, boyutu, türü ve üst klasörü gibi özelliklere aynı şekilde erişilebilir. GetFolder yönteminde açıklandığı gibi.