swhitti
asked on
Script to shorten file names and copy to different directory
I have a script that sungenwang was kind enough to help me with but I need one change to it. I need it to perform the copying all of the files in the subdirectories to the new location without creating the directory file structure at the new location.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Call MoveFolder("c:\temp", "c:\temp2")
Sub MoveFolder(strSourceFolder, strTargetFolder)
Set objCurrentFolder = objFSO.GetFolder(strSourceFolder)
For Each objFile In objCurrentFolder.Files
strTargetPath = strTargetFolder & "\" & ChangeFileName(objFSO.GetFileName(objFile))
'msgbox "file" & vbCrLf & objFile & vbCrLf & strTargetPath
objFSO.CopyFile objFile, strTargetPath
Next
For Each objFolder In objCurrentFolder.subFolders
strTargetNewFolder = strTargetFolder & Replace(objFolder, objFSO.GetParentFolderName(objFolder), "")
'msgbox "folder" & vbCrLf & objFolder & vbCrLf & strTargetNewFolder
If Not objFSO.FolderExists(strTargetNewFolder) Then
objFSO.CreateFolder(strTargetNewFolder)
End If
Call MoveFolder(objFolder, strTargetNewFolder)
Next
End Sub
Function ChangeFileName(strFileName)
intPos = InStr(strFileName, "_")
If intPos > 0 Then
ChangeFileName = Left(strFileName, InStr(strFileName, "_")-1) & "." & objFSO.GetExtensionName(strFileName)
Else
ChangeFileName = strFileName
End If
'msgbox ChangeFileName
End Function
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
How do you intend to deal with duplicate filenames causing overwriting?
ASKER
Thanks prashanthd!
@aikimark, thanks for the question. In my case I don't mind duplicate filenames causing overwriting as we want the files to update anytime they change in the original folder.
@aikimark, thanks for the question. In my case I don't mind duplicate filenames causing overwriting as we want the files to update anytime they change in the original folder.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks aikimark. At this point I think this script is going to do what I need it to. I don't think there will be a lot of changes to the existing files just additional ones. Thanks for the recommendations, I incorporated them into the final script I plan on using.