|
|||||||
Работа с файловой системой
Время создания: 31.07.2019 23:07
Текстовые метки: FSO, VBA
Раздел: Разные закладки - VBA - FSO
Запись: xintrea/mytetra_db_adgaver_new/master/base/1513050942zxgs38sj8x/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Работа с файловой системой В этой статье я расскажу об удобном способе работы с фаловой системой в VBA. Для начала создадим объект файловой системы:
Sub cmdCreateFolder_Click() Dim myFileSystemObject As Object 'As FileSystemObject ' Dim objFSO As Object Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
' Set myFileSystemObject = New FileSystemObject myFileSystemObject.CreateFolder ("d:\LocalData\username\Desktop\qw\qw") End Sub
Sub FSOTest()
Dim fso Set fso = CreateObject("Scripting.FileSystemObject")
'Этот объект включает в себя все необходимое для работы с файлами и папками Windows. Вот так можно получить список всех дисков в системе:
Set drives = fso.drives For Each d In drives s = s + d.DriveLetter + ", " Next d MsgBox (s)
'Попробуем узнать всю информацию о диске C: этот код покажет нам свободное место на диске, его полную емкость, тип файловой системы, метку, серийный номер и многое другое. Set DriveC = fso.GetDrive("C:") strMsg = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox strMsg
'С дисками разобрались, теперь перейдем к папкам. Объект папки создается так:
Set Folder = fso.GetFolder("C:\Program Files")
'Или так:
Set Folder = fso.GetSpecialFolder(0)
'Или вот так:
Set DriveC = fso.GetDrive("C:") Set Folder = DriveC.RootFolder
'Получим список всех папок в C:\Program Files:
Set Folder = fso.GetFolder("C:\Program Files") For Each SubFolder In Folder.SubFolders s = s + SubFolder.Name + vbCrLf Next MsgBox (s)
'А теперь посмотрим файлы на диске D:
Set Folder = fso.GetFolder("d:\") For Each f In Folder.Files s = s + f.Name + vbCrLf Next MsgBox (s) End Sub
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|