FileSystemObject sınıf, çalıştırma Microsoft komut dosyası çalıştırma modülünün (Scrrun.dll) bulunur. Scrrun.dll dosyasını edinmek için <a0></a0>, aşağıdaki paketlerinden birini yükleyin:
Microsoft Windows Script Host
Microsoft Windows NT Option Pack
Microsoft ınternet ınformation Server 3.0
3.1 Yükseltme komut dosyası
Microsoft Visual Studio 98
Microsoft Visual Basic 6.0
FileSystemObject sınıfı daha iyi performans sağlar dan Visual Basic gibi dizini ve GetAttr iç işlevlerini kullanın. Ayrıca, FileSystemObject, uygulamak çok daha kolaydır Visual Basic iç işlevleri.
Yeni bir proje standart exe DOSYASı, Visual Basic'te oluşturun. Varsayılan olarak, Form1 oluşturulur.
Proje menüsünde Başvurular ' ı tıklatın ve sonra da Microsoft Scripting çalışma zamanı başvuru ekleyin. Bu seçenek listede yoksa, sisteminizdeki Scrrun.dll dosyasını bulun. Gerekiyorsa, bu Information About the FileSystemObject Class bölümünde listelenen araçlardan birini yükleyin.
Form1'e, bir KomutDüğmesi, Etiket ve bir liste kutusu denetimi ekleyin. Etiket denetimi genişliğini formun genişliğini aynı şekilde ayarlanır.
Form1 genel Tanımlamalar bölümüne aşağıdaki kodu ekleyin:
Option Explicit
Dim fso As New FileSystemObject
Dim fld As Folder
Private Sub Command1_Click()
Dim nDirs As Long, nFiles As Long, lSize As Currency
Dim sDir As String, sSrchString As String
sDir = InputBox("Type the directory that you want to search for", _
"FileSystemObjects example", "C:\")
sSrchString = InputBox("Type the file name that you want to search for", _
"FileSystemObjects example", "vb.ini")
MousePointer = vbHourglass
Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
MousePointer = vbDefault
MsgBox Str(nFiles) & " files found in" & Str(nDirs) & _
" directories", vbInformation
MsgBox "Total Size = " & lSize & " bytes"
End Sub
Private Function FindFile(ByVal sFol As String, sFile As String, _
nDirs As Long, nFiles As Long) As Currency
Dim tFld As Folder, tFil As File, FileName As String
On Error GoTo Catch
Set fld = fso.GetFolder(sFol)
FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly)
While Len(FileName) <> 0
FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, _
FileName))
nFiles = nFiles + 1
List1.AddItem fso.BuildPath(fld.Path, FileName) ' Load ListBox
FileName = Dir() ' Get next file
DoEvents
Wend
Label1 = "Searching " & vbCrLf & fld.Path & "..."
nDirs = nDirs + 1
If fld.SubFolders.Count > 0 Then
For Each tFld In fld.SubFolders
DoEvents
FindFile = FindFile + FindFile(tFld.Path, sFile, nDirs, nFiles)
Next
End If
Exit Function
Catch: FileName = ""
Resume Next
End Function
Projeyi çalıştırın ve Command1</a1>'ı tıklatın.
Dizin ve dosya adını aramak için yazın. Her dosya bulunduğunda, liste kutusuna dosya adının eklendiğini dikkat edin. Işlem tamamlandığında, bulunan dosya sayısı, bir ileti kutusunda görüntülenir. Dosyaların toplam boyutunu da görüntülenir.
Bir uygulama, bunları erişmeye çalışırsa, bazı dosya ve dizinleri, Microsoft Windows XP'de, sistem birim bilgisi gibi erişim ihlaline neden. Hata kodu, bir sorun ortaya çıktığında bir dizinde arama durur. Gerekiyorsa, daha güçlü bir geçici çözüm, farklı bir yaklaşım kullanmanız gerekir.
Bir dosya süzgeci'ni kullanırsanız (gibi *. *), çok sayıda dosya döndürdü. Liste kutusu denetimi, yalnızca sınırlı sayıda karakter içerebilir. Daha fazla girdi yok, bu sınıra ulaşıldığında, liste kutusuna eklenir.
Bu kod örneği, Microsoft Scripting çalışma zamanı'nı (Scrrun.dll) 5.6.0.6626 sürümünü kullanarak sınanmıştır. Sorunları oluşursa, bu dosyanın daha yeni bir sürümünü karşıdan yüklemek zorunda kalabilirsiniz.
Belirli bir dosyayı bulmak için kullanabileceğiniz diğer yöntemler hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
185476
(http://support.microsoft.com/kb/185476/EN-US/
)
Nasıl YAPıLıR: Arama dizinlerini Find veya listesi dosyaları
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:185601
(http://support.microsoft.com/kb/185601/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.