Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

File System Object - rad sa fajlovima i folderima

[es] :: Visual Basic 6 :: File System Object - rad sa fajlovima i folderima

[ Pregleda: 8852 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Krsta
Krstić Dejan
Programer & Web Developer
Kruševac

Član broj: 2461
Poruke: 307
*.ptt.yu

Sajt: www.atec.rs


+15 Profil

icon File System Object - rad sa fajlovima i folderima31.08.2003. u 01:37 - pre 220 meseci
Na predlog mladenovicz-a, a posto na forumu ima dosta pitanja vezanih za ovu temu postavljam ovaj topic za sve nejasnoce sa FSO-om.
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: File System Object - rad sa fajlovima i folderima31.08.2003. u 23:54 - pre 220 meseci
Dok se ne odluči neko da napiše nešto, evo pomoći za FSO sa MSDN-a.

WSH malo detaljnije na ovoj stranici

U stvari, za Windows Script evo ovde zvanične dokumentacije u vidu fajla (1.36 MB) koji se skine pa lepo off-line proučavaš sve vezano za Windows skriptovanje.

Odnosno sve to gore i još ponešto može da se nađe na početnoj stanici za Windows Script.
Commercial-Free !!!
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: File System Object - rad sa fajlovima i folderima02.09.2003. u 13:13 - pre 220 meseci
Da bi se koristio FileSystemObject potrebno je u References ukljuciti Microsoft Scripting Runtime (scrrun.dll).

FileSystemObject OBJEKTNI MODEL
(koristim Code tag jer je tako lepo formatirano :))

Code:

---------------------------------------------------------------------------------
OBJEKAT         KOLEKCIJA       OPIS
---------------------------------------------------------------------------------
Dictionary                      Top-level objekat. Slican VBA Collection objektu.
Drive           Drives          Predstavlja drajv/kolekciju drajvova.
File            Files           Predstavlja fajl/kolekciju fajlova.
FileSystemObject                Top-level objekat. Koristi se za pristup i rad sa
                                drajvovima , folderima i fajlovima
Folder          Folders         Predstavlja folder/kolekciju foldera
TextStream                      Koristi se za rad sa tekstualnim fajlovima (read,
                                write, append)
---------------------------------------------------------------------------------


1. TextStream OBJEKAT

Kreira se metodoma FileSystemObjecta OpenTextFile ili CreateTextFile.

1.1. OpenTextFile

Otvara navedeni fajl, vraca TextStream objekat koji se moze koristiti za citanje ili pisanje u fajl.

Code:

object.OpenTextFile(filename[, iomode[, create[, format]]])


object - FSO
filename - Naziv fajla
iomode - Opcioni parametar, input/output mode (ForReading=1, ForWriting=2, ForAppending=8)
create - Opcioni parametar tipa Boolean, indikator da li treba kreirati fajl ako ne postoji. Default vrednost je False
format - Opcioni parametar, predstavlja format fajla
TristateUseDefault=-2 koristi se system default
TristateTrue=-1 Unicode
TristateFalse=0 ASCII
Default vrednost je TristateFalse

1.2. CreateTextFile

Kreira fajl, vraca TextStream objekat koji se moze koristiti za citanje ili pisanje u fajl.

Code:

object.CreateTextFile(filename[, overwrite[, unicode]])


object - FileSystemObject ili Folder objekat.
filename - naziv fajla koji treba da bude kreiran
overwrite - Opcioni parametar, tipa Boolean, da li treba 'pregaziti' fajl ako postoji. Default False
unicode - Opcioni parametar, tipa Boolean, da li fajl kreirati kao Unicode (True) ili ASCII (False). Default False

TextStream PROPERTIES

AtEndOfLine - Boolean, Read Only, vraca True ako je fajl pointer pozicioniran na EOL (end-of-line) marker tj. na kraj linije. Moze se koristiti samo ako je TextStream fajl otvoren za citanje.
AtEndOfStream - Boolean, Read Only, vraca True ako je fajl pointer pozicioniran na kraj TextStream fajla. Moze se koristiti samo ako je TextStream fajl otvoren za citanje.
Column - Read Only, vraca redni broj kolone u kojoj se nalazi karakter na koji je pozicioniran fajl pointer
Line - Read Only, vraca redni broj linije fajla u kojoj se nalazi fajl pointer

TextStream METHODS

Close - zatvara otvoreni TextStream fajl
Read(characters) - cita odredjeni broj karaktera iz fajla i vraca odgovarajuci string
ReadAll - cita ceo fajl i vraca sadrzaj u jednom stringu
ReadLine - cita tekucu liniju iz fajla
Skip(characters) - preskace (ignorise) oderedjeni broj karaktrera iz fajla
SkipLine - preskace (ignorise) tekucu liniju u fajlu
Write(string) - upisuje string u fajl
WriteLine([string]) - upisuje string u fajl i oznaku za prelazak u novi red. Ako se string izostavi, upisuje oznaku za prelazak u novi red.
WriteBlankLines(lines) - upisuje odredjeni broj oznaka za prelazak u novi red (praznih linija)

PRIMERI:
1. Kod koji otvara fajl i upisuje u njega string (za dodavanje na kraj fajla koristiti ForAppending umesto ForWriting)

Code:

Dim oFSO        As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream

    Set oFSO  =  New Scripting.FileSystemObject
    Set oTextStream  =  oFSO.OpenTextFile("C:\test.txt", _
                                           ForWriting, _
                                           True, _
                                           TristateFalse)
    
    oTextStream.WriteLine  ("JUHU")
    
    oTextStream.Close
    
    Set oTextStream  =  Nothing
    Set oFSO  =  Nothing


2. Citanje fajla karakter po karakter

Code:

Dim oFSO        As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream

    Set oFSO  =  New Scripting.FileSystemObject
    Set oTextStream  =  oFSO.OpenTextFile("C:\test.txt", _
                                          ForReading, _
                                          True, _
                                          TristateFalse)
    
    While Not oTextStream.AtEndOfStream
        Debug.Print oTextStream.Read (1)
    Wend
    
    oTextStream.Close
    
    Set oTextStream  =  Nothing
    Set oFSO  =  Nothing


3. Citanje fajla, liniju po liniju

Code:

Dim oFSO        As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream

    Set oFSO  =  New Scripting.FileSystemObject
    Set oTextStream  =  oFSO.OpenTextFile("C:\test.txt", _
                                           ForReading, _
                                           True, _
                                           TristateFalse)
    
    While Not oTextStream.AtEndOfStream
        Debug.Print oTextStream.ReadLine
    Wend
    
    oTextStream.Close
    
    Set oTextStream  =  Nothing
    Set oFSO  =  Nothing


Cini mi se da bi ovo moglo nekako lepse da se formatira ali ne znam kako, tako da ako moderatori misle da ovo moze lepse da izgleda, samo napred menjate.
Mislim da je ovo dovoljno za citanje/pisanje u fajl. Anyway, nastavice se :)


[Ovu poruku je menjao mladenovicz dana 02.09.2003. u 16:06 GMT]
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: File System Object - rad sa fajlovima i folderima02.09.2003. u 14:04 - pre 220 meseci
2. Drive OBJEKAT i Drives KOLEKCIJA

Drive objekat omogucava pristup informacijama o odredjenom drajvu. Drive objekat se dobija metodom GetDrive FileSystemObjecta ili pristupom itemu u kolekciji Drives. Posto se iz naziva propertya vidi sta taj property znaci, mislim da ih ne treba objasnjavati. Mozda bi trebalo izdvojiti IsReady property. IsReady property za removable i CD-ROM drajvove vraca True ako je medij unutra. Ovim propertyjem se moze ispitati da li je CD u CD-ROMu.

PRIMERI:

1. Sledeci kod ide kroz sve drajvove koji su prisutni na sistemu i ispisuje tip drajva i da li je drajv Ready.

Code:

Dim oFSO        As Scripting.FileSystemObject
Dim oDrive      As Scripting.Drive
Dim sType       As String
Dim sMsg        As String
    
    Set oFSO = New Scripting.FileSystemObject
    
    For Each oDrive In oFSO.Drives
        Select Case oDrive.DriveType
            Case 0: sType = "Unknown"
            Case 1: sType = "Removable"
            Case 2: sType = "Fixed"
            Case 3: sType = "Network"
            Case 4: sType = "CD-ROM"
            Case 5: sType = "RAM Disk"
        End Select

        
        sMsg = "Drive " & oDrive.DriveLetter & ": - " & sType
        If oDrive.IsReady Then
            sMsg = sMsg & " - Drive is Ready."
        Else
            sMsg = sMsg & " - Drive is not Ready."
        End If
        
        Debug.Print sMsg

    Next
    
    Set oFSO = Nothing


2. sledeci kod ispisuje neke informacije o svim ready drajvovima na sistemu

Code:

Dim oFSO        As Scripting.FileSystemObject
Dim oDrive      As Scripting.Drive
Dim sType       As String

    Set oFSO = New Scripting.FileSystemObject

    For Each oDrive In oFSO.Drives
        If oDrive.IsReady Then
            Debug.Print oDrive.DriveLetter, _
                        oDrive.VolumeName, _
                        oDrive.FileSystem, _
                        oDrive.TotalSize, _
                        oDrive.FreeSpace, _
                        oDrive.DriveType
        End If
    Next

    Set oFSO = Nothing


3. koriscenje GetDrive metoda

Code:

Private Sub m_ShowFreeSpace(drvPath)
Dim oFSO        As Scripting.FileSystemObject
Dim oDrive      As Scripting.Drive
Dim sMsg        As String

    Set oFSO = New Scripting.FileSystemObject
    Set oDrive = oFSO.GetDrive(oFSO.GetDriveName(drvPath))
    
    sMsg = "Drive " & UCase(drvPath) & " - "
    sMsg = sMsg & oDrive.VolumeName & vbCrLf
    sMsg = sMsg & "Free Space: " & FormatNumber(oDrive.FreeSpace / 1024, 0)
    sMsg = sMsg & " Kbytes"
    Debug.Print sMsg
    
    Set oDrive = Nothing
    Set oFSO = Nothing
End Sub


 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: File System Object - rad sa fajlovima i folderima02.09.2003. u 14:38 - pre 220 meseci
3. Folder OBJEKAT i Folders KOLEKCIJA

Folder objekat se dobija metodom GetFolder FSOa i omogucava pristup informacijama o folderu, kao i osnovne operacije sa folderima tipa Copy, Delete, Move. Nazivi Propertyja i metoda su desckriptivni i mislim da ih ne treba objasnjavati.

PRIMERI:

1. Ispis svih subfoldera i fajlova u folderu

Code:

Private Sub m_FolderInfo(folderspec)

Dim oFSO        As Scripting.FileSystemObject
Dim oFolders    As Scripting.Folders
Dim oFolder     As Scripting.Folder
Dim oSubFolder  As Scripting.Folder
Dim oFiles      As Scripting.Files
Dim oFile       As Scripting.File
    
    Set oFSO = New Scripting.FileSystemObject
    
    If Not oFSO.FolderExists(folderspec) Then
        MsgBox "Path not found"
        Exit Sub
    End If
    
    Set oFolder = oFSO.GetFolder(folderspec)
    
    Set oFolders = oFolder.SubFolders
    
    Debug.Print "SUBFOLDERS:"
    For Each oSubFolder In oFolders
        Debug.Print oSubFolder.Name, _
                    oSubFolder.DateCreated, _
                    oSubFolder.Size
    Next
    
    Set oFiles = oFolder.Files
    
    Debug.Print "FILES:"
    
    For Each oFile In oFiles
        Debug.Print oFile.Name, _
                    oFile.DateCreated, _
                    oFile.Size, _
                    oFile.Type
    Next
    
    Set oFolders = Nothing
    Set oFolder = Nothing
    Set oFiles = Nothing
    Set oFSO = Nothing
End Sub

 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: File System Object - rad sa fajlovima i folderima02.09.2003. u 15:03 - pre 220 meseci
4. FileSystemObject

Top-level objekat, omogucava rad sa fajlovima, folderima i drajvovima.

Metode za rad sa folderima:
-CreateFolder
-CopyFolder
-DeleteFolder
-FolderExists
-GetFolder
-GetSpecialFolder - vraca specijalne foldere (WindowsFolder, SystemFolder, TemporaryFolder)
-GetTempName - vraca slucajno generisan naziv koji se moze koristiti za temporary folder
-GetParentFolderName
-MoveFolder

Metode za rad sa fajlovima
-CopyFile
-CreateTextFile
-DeleteFile
-FileExists
-GetFile
-GetExtensionName
-GetFileName
-GetFileVersion
-GetTempName
-MoveFile
-OpenTextFile

Metode za rad za drajvovima
-DriveExists
-GetDrive
-GetDriveName
-Drives property - (kolekcija postojecih drajvova)

Ostale metode
-BuildPath(path, name) - kreira putanju, tako sto na path nakaci name. Path separator ce biti dodat ako je potrebno
-GetAbsolutePathName - vraca apsolutnu putanju u odnosu na tekuci folder
-GetBaseName (GetBaseName("C:\My Music\DMyMusic") vrati DMyMusic)

 
Odgovor na temu

[es] :: Visual Basic 6 :: File System Object - rad sa fajlovima i folderima

[ Pregleda: 8852 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.