sintassi: file
esempi: MyFile = WIN.INI
MyFile = Dir("C:\WINDOWS\WIN.INI")
esempi: MyFile = nome del primo file che inizia per filenome .ini
MyFile = Dir("C:\WINDOWS\filenome*.ini")
Dir()
in caso di utilizzo dei caratteri jolly é possibile utilizzare Dir() che restituirà il nome dell'elemento seguente
in questa maniera si possono creare cicli Do While in cui si ciclano i risultati fino a che la striga non é vuota
esempio: ciclo tutti i file secondo criterio
MyFile = Dir("C:\WINDOWS\filenome*.ini") trovo il primo elemento
Do while MyFile <>"" ciclo gli altri elementi...Loop
MyFile = Dir()
sintassi: directory
Dir("Directory", vbDirectory) restiutuisce il nome della directory stessa senza la parte path
Dir("Directory\*", vbDirectory) restiutuisce il nome della prima subdirectory
esempi: MyDir = directory (che é il nome della directory)
MyDir = Dir("C:\directory", vbDirectory)
esempi: verifico se esiste una directory
MyDir = Dir("C:\directory", vbDirectory)
if MyDir <> "" THEN ... se esiste
esempi: scorro tutte le subdirectroy e segno in una variabile il nome dell'ultima (ciclo ascensionale)
testodir = "testo filtro direcorry" per fare un filtro di solo alcune subdirectories
root = "\\path\*" & testodir & "*" directory root con le subdirectories da listare
directory = "" variabile a cui daremo il nome della subdirectroy finale
listdirectory = Dir(root, vbDirectory) lista delle subdirectories
Do While listdirectory <> "" ciclo scorre tutte le subdirectories fino a che non é vuota la lista
directory = listdirectory setta nella variabile la subdirectory trovata prima di passare alla prossimaLoop
listdirectory = Dir() passa alla prossima
conteggio file/directory
per sapere quanti file o directory ci sono occorre creare un ciclo Do While in quanto il comando non crea un array degli elementi
conta = conta + 1Loop
MyFile = Dir() va al prossimo file
conta = conta + 1Loop
MyFile = Dir() va al prossimo file o directory
If GetAttr("path\" & MyDir) = vbDirectory Then conta = conta + 1 conta solo se é una directoryLoop
MyFile = Dir() va al prossimo file o directory
sintassi:
Kill("PATH\NOME FILE") normale
con FileSystemObject
Dim FSO
Dim fulNameFile As String
fulNameFile = "path\file"
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile fulNameFile, True
esempi:
Kill "C:\Users\Ron\Test\testo.txt"
Kill "C:\Users\Ron\Test\*.*"
Kill "C:\Users\Ron\Test\*.xl*"
esempio: verifico se presente un file ed in caso lo cancello
if Dir(nomefile) <> "" Then Kill nomefile
se non funziona (da testare)
- verifica se il file é aperto
- cambia lo stato in sola lettura (potrebbe agevolare la chiusura senza salvataggio)
- chudi senza salvare
- prova a cancellare di nuovo il file
If IsWorkBookOpen("C:\directory\nomefile.xlsx") Then verifica se il file é apertoIf Workbooks("nomefile.xlsx").ReadOnly = True Then verifica se già in sola letturaEnd IfWorkbooks("nomefile.xlsx").ChangeFileAccess Mode:=xlReadOnly modifica stato in sola letturaEnd If
Workbooks("nomefile.xlsx").Close SaveChanges:=False chiudi il file
Kill "C:\directory\nomefile.xlsx" cancella il file
per IsWorkBookOpen vedi metodi - verifica - file aperto/stato
sintassi:
FileCopy origine, destinazione
esempi: copio e rinomino un file
FileCopy "C:\Users\Ron\Test\testo.txt", "C:\root\testocopiato.txt"
esempi: copio e rinomino un file
origine = "C:\Users\Ron\Test\testo.txt"
destinazione = "C:\root\testocopiato.txt"
FileCopy origine, destinazione
sintassi:
Name origine As destinazione
esempio: muovo e rinomino un file
Name "C:\Users\Ron\Test\testo.txt" As "C:\root\testocopiato.txt"
esempi: muovo una directory con tutto il suo contenuto
Name "C:\Users\Ron\Test1" As "C:\Users\Ron\Test2"
Name "C:\Users\Ron\Test1\" As "C:\Users\Ron\Test2\" funziona con o senza \
sintassi:
MkDir(nomedirectorycompleto)
esempio: creo una directory
MkDir "C:\Users\Ron\Test\"
esempi: creo una directory se non esisteverifico se esiste una directory
MyDir = Dir("C:\directory", vbDirectory)
if MyDir = "" THEN
MkDir "C:\directory"End if
sintassi:
RmDir(nomedirectorycompleto)
esempio: elimino una directory vuota
RmDir "C:\Users\Ron\Test\"
esempio: verifico se presente una directory ed in caso o la creo o cancello il contenuto
directory = "C:\download\prova\"
If Len(Dir(directory, vbDirectory)) = 0 Then verifico se la directory é esiste
MkDir directoryElse
Kill directory & "*.*"End If