Reply to comment
Copy, Move, Rename File Preserving Destination Name Case
The CopyFile() and MoveFile() WIN API functions preserve the case of the name for the destination file. Alternatively, WSH can be used.
The source and destination file names should include the directory name in both cases.
Note 1 A Copy operation will not change file name case when destination file already exists (overwritten).
Note 2 The WinApiErrMsg is used to retrieve Windows API error message in case of error.
| This is sample code. Add error handling and adjust to your requirements as necessary. |
lcFileName = <...> lcCopyFileName = <...> IF CopyFile(lcFileName, lcCopyFileName, 0) = 0 ? "Copy unsuccessful:" + WinApiErrMsg(GetLastError() ) ENDIF lcFileName2 = <...> lcNewFileName = <...> * Move/Rename file IF MoveFile(lcFileName2, lcNewFileName) = 0 ? "Move/Rename unsuccessful" ENDIF RETURN FUNCTION CopyFile(tcFileName, tcCopyFileName, tnFailIfExists) DECLARE Long CopyFile IN WIN32API String SourceFileName, String DestFileName, Long bFailIfExists RETURN CopyFile(tcFileName, tcCopyFileName, tnFailIfExists) FUNCTION MoveFile(tcFileName, tcNewFileName) DECLARE Long MoveFile IN WIN32API String SourceFileName, String DestFileName RETURN MoveFile(tcFileName, tcNewFileName)
* WSH * Copy file * The file name case will not be changed for existing destination file. oFSO = CreateObject("Scripting.FileSystemObject") llOverWrite = .T. TRY oFSO.CopyFile(lcFileName, lcCopyFileName, llOverWrite) CATCH ? "Copy unsuccessful" ENDTRY * Move/Rename file oFSO = CreateObject("Scripting.FileSystemObject") TRY oFSO.MoveFile(lcFileName, lcNewFileName ) CATCH ? "Move/Rename unsuccessful" ENDTRY
Recent comments
1 week 4 days ago
4 weeks 20 hours ago
4 weeks 23 hours ago
4 weeks 1 day ago
4 weeks 1 day ago
5 weeks 2 days ago
8 weeks 2 days ago
10 weeks 4 days ago
12 weeks 2 days ago
12 weeks 3 days ago