Her er et lille program som finder alle mapper og filer, den kan du bygge om til at finde filer eller mapper med !!
Du skal bruge :
1 Dir lister 2 Listbox 1 Command knap
Sub gennemløb(mappe As String, antal As Long, antalFiles As Long, str As Long) \'array til mapper Dim mapper() As String Dim MyName As String Dim fso, f, f1, fc, s, fl \'antal fundne mapper Dim antalentries As Integer Dim i As Long antalentries = 0 \'åbner dir Set fso = CreateObject(\"Scripting.FileSystemObject\") Set f = fso.GetFolder(Replace(mappe & \"\\\", \"\\\\\", \"\\\")) Set fc = f.SubFolders
\'kør medens der er filer eller mapper i mappen For Each f1 In fc \'fjerner mapperne . og.. (hvorfor ???) og buster pagefile i win2000 som giver fejl ReDim Preserve mapper(antalentries) antal = antal + 1 \'lægger mappen i arrayet mapper(antalentries) = f1.Name antalentries = antalentries + 1 \'lister mappen på listbox List1.AddItem mappe & \"\\\" & f1.Name str = str + f1.Size
Set fl = f.Files For Each fl1 In fl List2.AddItem mappe & \"\\\" & fl1.Name antalFiles = antalFiles + 1 Next Next
\'hvis der er mapper i mappen tager vi en tur mere If antalentries > 0 Then For i = 0 To UBound(mapper) gennemløb mappe & \"\\\" & mapper(i), antal, antalFiles, str Next End If
End Sub Private Sub Command1_Click() \'renser listboxene ol labels List1.Clear List2.Clear Label1.Caption = \"\" Dim antal As Long Dim antalFiles As Long Dim mappe As String Dim drev As String Dim str As Long Dim sizeDrev As Double Dim totalDrev As Double \'finder mappen fra Dirbox mappe = Dir1.Path antal = 0 antalFiles = 0 str = 0 sizeDrev = 0 totalDrev = 0 \'starter gennemløb gennemløb mappe, antal, antalFiles, str
Private Sub Form_Load() \'sætter c:\\ til default dir Dir1.Path = \"c:\\Corel\" End Sub
Private Sub List1_DblClick() \'sletter index på list2 List2.ListIndex = -1 \'åbner mappen gotoFil End Sub
Private Sub List2_DblClick() \'sletter index på list1 List1.ListIndex = -1 \'åbner filen gotoFil End Sub
Sub get_str(strDrev As String, totalDrev As Double, sizeDrev As Double) Dim fs, d, s Set fs = CreateObject(\"Scripting.FileSystemObject\") Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(strDrev))) totalDrev = FormatNumber(d.TotalSize / 1024, 0) sizeDrev = FormatNumber(d.AvailableSpace / 1024, 0) End Sub
Public Declare Function ShellExecute Lib \"shell32.dll\" Alias \"ShellExecuteA\" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long \'åbner i normal størrelse og sætter focus Public Const SW_SHOWNORMAL = 1
Public Sub gotoFil() \'finder mappen eller filen Dim fil If Filesys.List1.ListIndex >= 0 Then fil = Filesys.List1.Text & \"\\\" ElseIf Filesys.List2.ListIndex >= 0 Then fil = Filesys.List2.Text Else fil = \"c:\\\" End If
fil = Replace(fil, \"\\\\\", \"\\\")
Dim Success As Long \'åbner program som er default for filtype, hvis mappe stifinder Success = ShellExecute(0&, vbNullString, fil, vbNullString, fil, SW_SHOWNORMAL)
Ja! Jeg har fået den til at søge som den skal, jeg kan bare ikke klikke på den fil/mappe jeg vil åbne! Nu har jeg kopieret de sidste linjer du skrev ind, og smidt dem ØVERST i mit kodevindue! Men det vil den slet ikke!
Følgende er tilføjet under References : Visual Basic for applications Visual Basic runtime objects and procedures Visual Basic objects and procedures OLE automation
Hvis du åbner project1 i zip filen du har hentet hvor kommer fejlen ??
Jeg bruger VB 6.0 sp 4
hyde
hyde
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.