MyTetra Share
Делитесь знаниями!
Работа с файловой системой
Время создания: 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

 

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