MyTetra Share
Делитесь знаниями!
Работа с файловой системой
12.12.2017
06:55
Текстовые метки: FSO, VBA
Раздел: VBA

Работа с файловой системой

В этой статье я расскажу об удобном способе работы с фаловой системой в 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\au11101\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

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования