Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Traženje Specifični Foldera pomoću Njihovih imena

  • 22 odgovora
  • 6.162 pregleda

Najnovija ↓

Traženje Specifični Foldera pomoću Njihovih imena 15.10.2004. u 20:28 · pre 268 meseci #1
Kako u VB mogu npr. na cijelom C disku tražiti foldere sa nekim specifičnim imenom npr. Video .našao sam u API-u funkcije FindFirstFile i FindNextFile ali mi baš ne odgovaraju.
Re: Traženje Specifični Foldera pomoću Njihovih imena 16.10.2004. u 00:09 · pre 268 meseci #2
Evo ja sam ovaj kod koristio da ispunim TreeView kontrolu sa svi folderima na nekoj particiji. Ti ga samo malo prepravi da odgovara tvojim potrebama...
Code:

Public Sub generateTree(tvw As TreeView, rootFolder As String)
On Error Resume Next
    Dim rootDir As Folder
    Dim nodX As Node
    
    'first to see if given path is true
    If FSO.FolderExists(rootFolder) = False Then Exit Sub
    Set rootDir = FSO.GetFolder(rootFolder) 'then get that folder
    'add it s root
    Set nodX = tvw.Nodes.Add(, , rootDir.Path, rootDir.Path, "FOLDER")
    nodX.Expanded = True
    
    For Each oDir In rootDir.SubFolders 'for each subfolder in folder
        'call addDir sub...
        addDir CStr(oDir), tvw
    
    Next oDir
    
End Sub
'this sub isn't mine (i found it somewhere on net, but i forgoted where), i just
'made some changes. it takes given folder name and add it (folder) and all his
'SubFolders in tree view
Private Sub addDir(dirname As String, tvw As TreeView)
    
    
    Dim rootFolder As Folder, currentFolder As Folder, subFolder As Folder
    Dim parentName As String
    Dim nodX As Node
    
    Set rootFolder = FSO.GetFolder(dirname) 'first get folder
    
    If Not rootFolder.IsRootFolder Then 'check to see if folder isn't root
    
        parentName = rootFolder.ParentFolder
        
        Set nodX = tvw.Nodes.Add(parentName, tvwChild, rootFolder, rootFolder.Name, "FOLDER")
        
    End If
    
    'here gets all subfolders in given folder
    For Each currentFolder In rootFolder.SubFolders
        'and add it to tree
        Set nodX = tvw.Nodes.Add(CStr(rootFolder), tvwChild, currentFolder, currentFolder.Name, "FOLDER")
        
        For Each subFolder In currentFolder.SubFolders 'for each subfolder in subfolder
            'everything goes again...
            addDir subFolder.Path, tvw
            
        Next subFolder
        
    Next currentFolder
    
End Sub

Ako bas nemozes sam mogu ja da ti je malo sredim...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 15:24 · pre 268 meseci #4
Da li ti treba samo za foldere u root-u ili i za podfoldere?
Inace, ovaj mi kod izgleda priilicno neoptimizovan...
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 16:15 · pre 268 meseci #7
@VRKY. Onda ti preporucujem da koristis rekurzivnu funkciju (koja moze biti jednostavnija od onih koje ti je dao krckoorascic). I koja je, BTW, verovatno na nekom od ona dva linka gore (nisam otvarao linkove):).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 17:18 · pre 268 meseci #9
Kolko sam vidio 2. link je za VB NET. Prvi je prilično dobar. Ja sam negdje naletio na ovaj primjer ali ne radi baš nešto OK.
Code:

Private Sub Form_Load()
FindStuff "C:\"
End Sub
Function FindStuff(sBegin As String)
Dim Search As Object, Fold
Set Search = CreateObject("Scripting.FileSystemObjects")
For Each Fold In Search.GetFolder(sBegin).SubFolders
If InStr(LCase(Fold), "ES") Then
MsgBox "Imaa"
End If
Call FindStuff(Fold.Path)
Next Fold
End Function
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 17:27 · pre 268 meseci #10
Na to sam mislio al' me mrzelo da pisem :) pa sam ti samo dao hint za rekurzivnu funkciju.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 17:55 · pre 268 meseci #14
Prblem je u Set Search = CreateObject("Scripting.FileSystemObjects"). Ne treba ti "s". Da bi izbegavao pojavljivanje ovakvih situacija obicno je bolje koristiti Early Binding. Bice ti lakse pri pisanju programa.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Traženje Specifični Foldera pomoću Njihovih imena 17.10.2004. u 19:16 · pre 268 meseci #16
Upravo sam išao još dodat u kod kod za kopiranje fajlova i to fino napravim i pokrenem, i nastane greška. A riječ je o: Fajl bi se trebao samo iskopirati u foldere pod imenom ES a kopije nastale po cijelom C disku... Zna li ko u čemu je greška?

Code:

Private Sub Form_Load()
FindStuff "C:\"
End Sub
Function FindStuff(sBegin As String)
Dim Search As Object, Fold
Set Search = CreateObject("Scripting.FileSystemObject")
For Each Fold In Search.GetFolder(sBegin).SubFolders
If InStr(UCase(Fold), "ES") Then
FileCopy App.Path & "\" & App.EXEName & ".exe", Fold.Path & "Vrky.exe"
End If
Call FindStuff(Fold.Path)
Next Fold
End Function


Ja sam tražio grešku ali bez uspjeha...
Re: Traženje Specifični Foldera pomoću Njihovih imena 18.10.2004. u 16:51 · pre 268 meseci #17
Da ti ne bih bio debuger a i da malo mucnes glavom reci cu ti gde je greska al' ne i u cemu ;). Ako ne pronadjes kasnije cu ti reci. Evo linije gde se greska nalazi:
Code:
FileCopy App.Path & "\" & App.EXEName & ".exe", Fold.Path & "Vrky.exe"
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme