This is the 2nd Tip in a series of Tips on the Microsoft Scripting Runtime Library. The 1st Tip related to Drives, while this Tip will concentrate on the Folders (Directories) in your PC and various methods to retrieve information from and how to manipulate them. The code should be self explanatory and basically documents itself. Should there be any questions related to this Topic, please feel free to ask.
-
'Accessing Folder Properties
-
Dim fso As FileSystemObject, fldr As Folder
-
Set fso = New Scripting.FileSystemObject 'OR
-
'Set fso = CreateObject("Scripting.FileSystemObject")
-
-
'Creates an Instance of a Folder
-
Set fldr = fso.GetFolder("C:\Windows\System32")
-
-
Debug.Print "Folder Properties of " & fldr.Path
-
Debug.Print " Folder Name: " & fldr.Name
-
Debug.Print " Folder Size: " & FormatNumber(fldr.Size, 0, vbFalse, vbFalse, vbTrue) & " bytes"
-
Debug.Print " Folder Created: " & fldr.DateCreated
-
Debug.Print " Folder Path: " & fldr.Path
-
Debug.Print " Folder Last Modified: " & fldr.DateLastModified
-
Debug.Print " Folder Last Accessed: " & fldr.DateLastAccessed
-
Debug.Print " Folder Drive: " & fldr.Drive
-
Debug.Print " Files in Folder: " & FormatNumber(fldr.Files.Count, 0, vbFalse, vbFalse, vbTrue) & " files"
-
Debug.Print " Is this a Root Folder: " & fldr.IsRootFolder
-
Debug.Print " Parent Folder: " & fldr.ParentFolder
-
Debug.Print " Folder Path: " & fldr.Path
-
'Could also use the GetBaseName Method of the File System Object
-
Debug.Print " Folder Short Name: " & fldr.ShortName
-
Debug.Print " Folder Short Path: " & fldr.ShortPath
-
Debug.Print " Number of Sub-Folders: " & fldr.SubFolders.Count
-
Debug.Print " Folder Type: " & fldr.Type
-
Debug.Print
-
-
-
'Code that creates a Temporary Folder (fso previously created)
-
Dim msTemporaryFolder As String
-
msTemporaryFolder = fso.GetSpecialFolder(TemporaryFolder).Path & "\"
-
Debug.Print msTemporaryFolder
-
Debug.Print
-
-
-
'Code to see if a Folder exists (fso previously created)
-
'Could also use the FolderExists Method of the File System Object
-
If fso.FolderExists("C:\Test") Then
-
Debug.Print "Folder exists"
-
Else
-
Debug.Print "Folder does not exist"
-
End If
-
Debug.Print
-
-
-
'Code to create a Folder (fso previously created)
-
'Could also use the CreateFolder Method of the File System Object
-
Set fldr = fso.CreateFolder("C:\Windows\System32\Temp Extraction Area")
-
Debug.Print "Created Folder " & fldr.Name
-
-
-
'Code to Delete a Folder (fso previously created)
-
'Could also use the DeleteFolder Method of the File System Object
-
Set fldr = fso.GetFolder("C:\Folder 1\Folder 2\Folder to Delete")
-
fldr.Delete True '"Folder to Delete" is Deleted
-
-
-
'Code to Move a Folder (fso previously created)
-
'Could also use the MoveFolder Method of the File System Object
-
Set fldr = fso.GetFolder("C:\Folder1\Folder2\Folder3")
-
fldr.Move "C:\" '"Folder3" moved to C:\
-
-
-
'Code to Copy a Folder (fso previously created)
-
'Could also use the CopyFolder Method of the File System Object
-
Set fldr = fso.GetFolder("C:\Folder1\Folder2")
-
fldr.Copy "C:\List", True 'Copies "Folder2" to C:\List
OUTPUT: -
Folder Properties of C:\WINDOWS\system32
-
Folder Name: system32
-
Folder Size: 888,994,639 bytes
-
Folder Created: 10/1/2005 2:46:52 AM
-
Folder Path: C:\WINDOWS\system32
-
Folder Last Modified: 2/5/2008 7:04:21 PM
-
Folder Last Accessed: 2/5/2008 7:04:22 PM
-
Folder Drive: C:
-
Files in Folder: 2,309 files
-
Is this a Root Folder: False
-
Parent Folder: C:\WINDOWS
-
Folder Path: C:\WINDOWS\system32
-
Folder Short Name: System32
-
Folder Short Path: C:\Windows\System32
-
Number of Sub-Folders: 50
-
Folder Type: File Folder
-
-
C:\DOCUME~1\Armund\LOCALS~1\Temp\
-
-
Folder exists
-
-
Created Folder Temp Extraction Area