Click to See Complete Forum and Search --> : Renaming Files
JSexton
Jan 14th, 2000, 02:53 AM
I need to copy files in a source directory (i.e. 1.tif, 2.tif, etc.) and rename them to a destination directory (i.e. 199912215001.001, 199912215001.002, etc). Think I have to use the CopyFile method but I'm chasing my tale can anyone help?
Thanks
Al Smith
Jan 14th, 2000, 03:01 AM
Hi,
Try :
FileCopy "Source File", "Destination File"
Al.
X_Darknight_X
Jan 14th, 2000, 03:07 AM
Try doing this:
OldFile = "C:\Location\1.tiff"
NewFile = "C:\Location\199912215001.001.tiff"
Name OldFile As NewFile
------------------
David Underwood
Teen Programmer
ICQ - 14028049 (http://www.icq.com/14028049)
E-mail - darknight23@hotmail.com
HeSaidJoe
Jan 14th, 2000, 03:35 AM
'if you are copying lots and lots of files try this out
'I use this to back up folders so I haven't tried to
'rename anything doing this...you can try that.
'look for the =================to see where you should try it.
'Wayne
'bas module code for copying a file from
'one directory to another
'in this case from c:\yourFolder to a:\yourFolder
'CAUTION....WILL OVERWRITE EXISTING FILES WITHOUT PROMPT
Option Explicit
'
Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" _
(ByVal lpPathName As String, _
lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _
(ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
(ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
(ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
'
Public Const INVALID_HANDLE_VALUE = -1
Public Const MAX_PATH = 260
Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Function rgbCopyFiles(sSourcePath As String, _
sDestination As String, _
sFiles As String) As Long
Dim WFD As WIN32_FIND_DATA
Dim SA As SECURITY_ATTRIBUTES
Dim r As Long
Dim hFile As Long
Dim bNext As Long
Dim copied As Long
Dim currFile As String
'Create the target directory if it doesn't exist
Call CreateDirectory(sDestination, SA)
'Start searching for files in the Target directory.
hFile = FindFirstFile(sSourcePath & sFiles, WFD)
If (hFile = INVALID_HANDLE_VALUE) Then
'nothing to do, so bail out
MsgBox "No " & sFiles & " files found."
Exit Function
End If
'Copy each file to the new directory
If hFile Then
Do
'trim trailing nulls, leaving one to terminate the string
currFile = Left$(WFD.cFileName, InStr(WFD.cFileName, Chr$(0)))
'==========================================================================
'haven't tried this part but I think it should work
currFile = Name currFile As "c:\YourOldFolder\YourNewFolder\"
'==========================================================================
'copy the file to the destination directory & increment the count
Call CopyFile(sSourcePath & currFile, sDestination & currFile, False)
copied = copied + 1
'find the next file matching the initial file spec
bNext = FindNextFile(hFile, WFD)
Loop Until bNext = 0
End If
'Close the search handle
Call FindClose(hFile)
'and return the number of files copied
rgbCopyFiles = copied
End Function
'>>>> CODE FOR FORM <<<<
Dim sSourcePath As String
Dim sDestination As String
Dim sFiles As String
Dim numCopied As Long
'set the appropriate initializing values
sSourcePath = "c:\YourOLdFolder\"
sDestination = "c:\YourNewFolder\"
sFiles = "*.*"
'perform the copy and return the copied file count; end application
numCopied = rgbCopyFiles(sSourcePath, sDestination, sFiles)
MsgBox numCopied & " files copied to " & sDestination
Unload Me
vbforums.com
Copyright Internet.com Inc., All Rights Reserved.