
Sub test
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:mydir"
Set oFolder = fso.GetFolder(source)
Set oFiles = oFolder.Files
For Each oFile in oFiles
msgbox oFile.Name
Next
End Sub |
Option Explicit
Private oFileSys As Object, i As Integer
Sub elenco_files_e_cartelle()
Dim source As String
source = "G:BLOG"
Set oFileSys = CreateObject("Scripting.FileSystemObject")
i = 0
[A:A].ClearContents
GetDir (source)
MsgBox "Ho terminato."
End Sub
Sub GetDir(dir)
Dim oFolder As Object, oFolders As Object, oFiles As Object, item As Object, item2 As Object
Set oFolder = oFileSys.GetFolder(dir)
Set oFolders = oFolder.SubFolders
Set oFiles = oFolder.Files
' scandisce tutte le sottocartelle
For Each item2 In oFiles
i = i + 1
Cells(i, 1) = item2.Path & "" & item2.Name
Next
For Each item In oFolders
i = i + 1
Cells(i, 1) = item.Path & "" & item.Name
GetDir (item)
Next
End Sub
|
Option Explicit
Private oFileSys As Object, i As Integer
Sub elenco_files_e_cartelle()
Dim source As String
source = "\MIO-PCUsersPublicscansioni passi carrabili"
Set oFileSys = CreateObject("Scripting.FileSystemObject")
i = 0
[A:A].ClearContents
GetDir (source)
MsgBox "Ho terminato."
End Sub
Sub GetDir(dir)
Dim oFolder As Object, oFolders As Object, oFiles As Object, item As Object, item2 As Object
Set oFolder = oFileSys.GetFolder(dir)
Set oFolders = oFolder.SubFolders
Set oFiles = oFolder.Files
' scandisce tutte le sottocartelle
For Each item2 In oFiles
i = i + 1
Cells(i, 1) = item2.Path & "" & item2.Name
Next
For Each item In oFolders
i = i + 1
Cells(i, 1) = item.Path & "" & item.Name
GetDir (item)
Next
End Sub
|
Option Explicit
Private oFileSys As Object, nFiles As Long, nSubDirs As Long, ext_file As String
Sub elenco_files_e_cartelle()
Dim source As String, i As Integer, j As Integer, v As Variant, ext As Variant, c As Collection
source = "\MIO-PCUsersPublicscansioni passi carrabili"
Set oFileSys = CreateObject("Scripting.FileSystemObject")
[A:B].Clear
nFiles = 0
nSubDirs = 0
ext_file = ""
GetDir source, i
Cells(i + 2, 1) = "Totale " & nFiles & " files in " & nSubDirs & " subdirectory."
Cells(i + 3, 1) = "Statistiche sui singoli files:"
ext_file = Replace(ext_file & "@", ";@", "")
v = Split(ext_file, ";")
j = i + 3
Set c = New Collection
Set c = duplicates(v)
For Each ext In c
j = j + 1
Cells(j, 1) = ext
Cells(j, 2) = count_occurrences(v, CStr(ext))
Next
[a1].Select
MsgBox "Ho terminato."
End Sub
Private Function GetDir(dir, i As Integer) As Long
Dim oFolder As Object, oFolders As Object, oFiles As Object, oFold As Object, oFile As Object
Set oFolder = oFileSys.GetFolder(dir)
Set oFolders = oFolder.SubFolders
Set oFiles = oFolder.Files
If i = 0 Then
i = i + 1
nSubDirs = nSubDirs + 1
Cells(i, 1) = oFolder.Path
Cells(i, 1).Font.Bold = 1
End If
For Each oFile In oFiles
i = i + 1
Cells(i, 2) = oFile.Name
nFiles = nFiles + 1
ext_file = ext_file & Mid(oFile, InStrRev(oFile, ".") + 1) & ";"
Next
For Each oFold In oFolders
i = i + 1
nSubDirs = nSubDirs + 1
Cells(i, 1) = oFold.Path & "" & oFold.Name
Cells(i, 1).Font.Bold = 1
GetDir oFold, i
Next
End Function
Function count_occurrences(vettore As Variant, search As String)
Dim s As String
s = Join(vettore, vbNullChar) & vbNullChar
LCase (s)
search = LCase(search)
count_occurrences = Len(Replace(s, search & vbNullChar, search & vbNullChar & "*")) - Len(s)
End Function
Function duplicates(vettore As Variant) As Collection
Dim v As Variant, dups As Collection
Set dups = New Collection
On Error Resume Next
For Each v In vettore
dups.Add CStr(v), v
Next
On Error GoTo 0
Set duplicates = dups
End Function
|
Option Explicit
Private oFileSys As Object, nFiles As Long, nSubDirs As Long, ext_file As String
Sub elenco_files_e_cartelle()
Dim source As String, i As Long, j As Long, v As Variant, ext As Variant, c As Collection
source = "C:cartella_con_sottocartelle_da_esaminare"
Set oFileSys = CreateObject("Scripting.FileSystemObject")
[A:B].Clear
nFiles = 0
nSubDirs = 0
ext_file = ""
GetDir source, i
Cells(i + 2, 1) = "Totale " & nFiles & " files in " & nSubDirs & " subdirectory."
Cells(i + 3, 1) = "Statistiche sui singoli files:"
ext_file = Replace(ext_file & "@", ";@", "")
v = Split(ext_file, ";")
j = i + 3
Set c = New Collection
Set c = duplicates(v)
For Each ext In c
j = j + 1
Cells(j, 1) = ext
Cells(j, 2) = count_occurrences(v, CStr(ext))
Next
[a1].Select
MsgBox "Ho terminato."
End Sub
Private Function GetDir(dir, i As Long) As Long
Dim oFolder As Object, oFolders As Object, oFiles As Object, oFold As Object, oFile As Object
Set oFolder = oFileSys.GetFolder(dir)
Set oFolders = oFolder.SubFolders
Set oFiles = oFolder.Files
If i = 0 Then
i = i + 1
nSubDirs = nSubDirs + 1
Cells(i, 1) = oFolder.Path
Cells(i, 1).Font.Bold = 1
End If
On Error GoTo gest_err
For Each oFile In oFiles
i = i + 1
If i > Rows.Count Then MsgBox "Limite del foglio raggiunto!": Exit Function
Cells(i, 2) = oFile.Name
nFiles = nFiles + 1
If InStrRev(oFile, ".") = 0 Then
ext_file = ext_file & " |
Function count_occurrences(vettore As Variant, search As String)
Dim s As String
s = Join(vettore, vbNullChar) & vbNullChar
s = LCase(s)
search = LCase(search)
count_occurrences = Len(Replace(s, search & vbNullChar, search & vbNullChar & "*")) - Len(s)
End Function
|
