ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Renaming Folders (https://www.excelbanter.com/excel-programming/383259-renaming-folders.html)

Dan R.

Renaming Folders
 
Is there a way to rename all files and folders within a directory to
all lower case letters (while keeping the same name)?

Thanks,
-- Dan


Chip Pearson

Renaming Folders
 
Try something like the following. It renames each folder to begin with "___"
and then renames again to the lower case name. This assumes you have no
folders whose name begins with "___". Change C_FOLDER_NAME to the full name
of the folder whose subfolder are to be renamed.

Const C_FOLDER_NAME = "C:\Test" '<<< CHANGE
Dim FSO As Object
Dim TempName As String
Dim FolderObj As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FolderObj In FSO.GetFolder(C_FOLDER_NAME).SubFolders
TempName = LCase(FolderObj.Name)
FolderObj.Name = "___" & FolderObj.Name
FolderObj.Name = TempName
Next FolderObj
Set FSO = Nothing


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"Dan R." wrote in message
ups.com...
Is there a way to rename all files and folders within a directory to
all lower case letters (while keeping the same name)?

Thanks,
-- Dan




Dan R.

Renaming Folders
 
Wow, very impressive, I wasn't expecting any feedback on this one...

Thanks a lot Chip,
-- Dan


Chip Pearson

Renaming Folders
 
Dan,

I didn't read your original post quite right. The code I replied with will
only do one level of subfolders below the C_FOLDER_NAME, and it won't do
files. The code below will rename all files and all levels of subfolders.
As before, change C_FOLDER_NAME to the appropriate folder name, and run
StartRename. It will call DoOneFolder and that calls itself recursively to
do all files and all levels of subfolders.

Sub StartRename()
Const C_FOLDER_NAME = "C:\Test"
Dim FSO As Object
Dim TopFolder As Object
Set FSO = CreateObject("Scripting.FileSystemObject")

Set TopFolder = FSO.getfolder(C_FOLDER_NAME)
DoOneFolder TopFolder
End Sub


Sub DoOneFolder(FolderObj As Object)
Dim FileObj As Object
Dim SubFolderObj As Object
Dim LCName As String

For Each FileObj In FolderObj.Files
LCName = LCase(FileObj.Name)
FileObj.Name = "___" & FileObj.Name
FileObj.Name = LCName
Next FileObj

For Each SubFolderObj In FolderObj.subfolders
LCName = LCase(SubFolderObj.Name)
SubFolderObj.Name = "___" & SubFolderObj.Name
SubFolderObj.Name = LCName
DoOneFolder SubFolderObj
Next SubFolderObj
End Sub


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)



"Dan R." wrote in message
ups.com...
Wow, very impressive, I wasn't expecting any feedback on this one...

Thanks a lot Chip,
-- Dan




Dan R.

Renaming Folders
 
Perfect, works great!

Thanks again,
-- Dan



All times are GMT +1. The time now is 11:52 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com