JohnOne Posted November 24, 2012 Share Posted November 24, 2012 (edited) expandcollapse popup;=================================================================================================== ; ; function Name: _FileRename ; Description: renames a file ; Parameter(s): $sFile = Full path to file ("c:pathtofile.ext") ; $sRename = New Filename ("newname.ext") ; $iOverWrite = 0 or 1 (1 overwrite new filename if exists, 0 do not overwrite) ; Return Value(s): ; On Success: ; returns 1 ; On Failure: ; returns 0 ; @Error: ; 1 if function fails ; @Extended: ; 1 if new filename exist before rename ; 0 if new filename not exist before rename ; Remark(s): http://www.autoitscript.com/forum/topic/146088-filerename/ ; Author(s): JohnOne ; ;=================================================================================================== $File = @ScriptDir & 'filetorename.txt' FileWrite($File, 'Test') _FileRename($File, 'newname.txt') If @error Then MsgBox(0, "Error", @error) Func _FileRename($sFile, $sRename, $iOverWrite = 0) Local Const $FILENOTEXIST = 2 If Not FileExists($sFile) Then Return SetError($FILENOTEXIST, 0, 0) Local $_StringLen = StringLen($sFile) Local $_StringInStr = StringInStr($sFile, "", 0, -1, $_StringLen) Local $_Dir = StringLeft($sFile, $_StringInStr) Local $_NewFile = $_Dir & $sRename Local $_NewFileExists = FileExists($_NewFile) Local $_FileMove = FileMove($sFile, $_NewFile, $iOverWrite) Return SetError(Not $_FileMove, $_NewFileExists, $_FileMove) EndFunc ;==>_FileRename Edited November 26, 2012 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
guinness Posted November 24, 2012 Share Posted November 24, 2012 Nice idea. As you're probably aware $_FileName isn't being used. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted November 24, 2012 Share Posted November 24, 2012 You're using $File in the function, but I presume this should be $sFile? UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
JohnOne Posted November 24, 2012 Author Share Posted November 24, 2012 O.ops Cheers, I forgot to update after wrapping code into a function. Edited. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
JohnOne Posted April 25, 2014 Author Share Posted April 25, 2014 (edited) I added this method to wiki a while back and forgot to update this thread. expandcollapse popupFileRename(@ScriptDir & "\rename.txt", @ScriptDir & "\renamed.txt") Func FileRename($FileName, $ReName) Local $SHFILEOPSTRUCT, $SourceStruct, $DestStruct Local Const $FO_RENAME = 0x0004 Local Const $FOF_SILENT = 0x0004 Local Const $FOF_NOCONFIRMATION = 0x0010 Local Const $FOF_NOERRORUI = 0x0400 Local Const $FOF_NOCONFIRMMKDIR = 0x0200 Local Const $NULL = 0 $SourceStruct = _StringToStruct($FileName) $DestStruct = _StringToStruct($ReName) $SHFILEOPSTRUCT = DllStructCreate( _ "hwnd hWnd;" & _ "uint wFunc;" & _ "ptr pFrom;" & _ "ptr pTo;" & _ "int fFlags;" & _ "int fAnyOperationsAborted;" & _ "ptr hNameMappings;" & _ "ptr lpszProgressTitle") DllStructSetData($SHFILEOPSTRUCT, "hWnd", $NULL) DllStructSetData($SHFILEOPSTRUCT, "wFunc", $FO_RENAME) DllStructSetData($SHFILEOPSTRUCT, "pFrom", DllStructGetPtr($SourceStruct)) DllStructSetData($SHFILEOPSTRUCT, "pTo", DllStructGetPtr($DestStruct)) DllStructSetData($SHFILEOPSTRUCT, "fFlags", BitOR($FOF_SILENT, $FOF_NOCONFIRMATION, $FOF_NOERRORUI, $FOF_NOCONFIRMMKDIR)) DllStructSetData($SHFILEOPSTRUCT, "fAnyOperationsAborted", $NULL) DllStructSetData($SHFILEOPSTRUCT, "hNameMappings", $NULL) DllStructSetData($SHFILEOPSTRUCT, "lpszProgressTitle", $NULL) $acall = DllCall("shell32.dll", "int", "SHFileOperation", "ptr", DllStructGetPtr($SHFILEOPSTRUCT)) If @error Then Return SetError(@error, @extended, 0) EndIf Return 1 EndFunc ;==>FileRename Func _StringToStruct($string) Local $iLen = StringLen($string) Local $Struct = DllStructCreate("char[" & String($iLen + 2) & "]") DllStructSetData($Struct, 1, $string) DllStructSetData($Struct, 1, 0, $iLen + 1) DllStructSetData($Struct, 1, 0, $iLen + 2) Return $Struct EndFunc ;==>_StringToStruct Edited April 25, 2014 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Jury Posted April 27, 2014 Share Posted April 27, 2014 (edited) Yes great! this works for me unlike your first function posted in this topic (I get error = 1) wish this one you posted on wiki had the $iOverWrite option though. Thanks Edited April 27, 2014 by Jury Link to comment Share on other sites More sharing options...
JohnOne Posted April 29, 2014 Author Share Posted April 29, 2014 (edited) expandcollapse popupFileRename(@ScriptDir & "\rename.txt", @ScriptDir & "\renamed.txt", 0) Func FileRename($FileName, $ReName, $iOverWrite = 1) Local $SHFILEOPSTRUCT, $SourceStruct, $DestStruct Local Const $FO_RENAME = 0x0004 Local Const $FOF_SILENT = 0x0004 Local Const $FOF_NOCONFIRMATION = 0x0010 Local Const $FOF_NOERRORUI = 0x0400 Local Const $FOF_NOCONFIRMMKDIR = 0x0200 Local Const $NULL = 0 Local Const $FILENAMENOTEXISTS = 6 Local Const $RENAMEEXISTS = 7 If Not FileExists($FileName) Then Return SetError($FILENAMENOTEXISTS, 0, 0) EndIf If FileExists($ReName) And Not $iOverWrite Then Return SetError($RENAMEEXISTS, 0, 0) EndIf $SourceStruct = _StringToStruct($FileName) $DestStruct = _StringToStruct($ReName) $SHFILEOPSTRUCT = DllStructCreate( _ "hwnd hWnd;" & _ "uint wFunc;" & _ "ptr pFrom;" & _ "ptr pTo;" & _ "int fFlags;" & _ "int fAnyOperationsAborted;" & _ "ptr hNameMappings;" & _ "ptr lpszProgressTitle") DllStructSetData($SHFILEOPSTRUCT, "hWnd", $NULL) DllStructSetData($SHFILEOPSTRUCT, "wFunc", $FO_RENAME) DllStructSetData($SHFILEOPSTRUCT, "pFrom", DllStructGetPtr($SourceStruct)) DllStructSetData($SHFILEOPSTRUCT, "pTo", DllStructGetPtr($DestStruct)) DllStructSetData($SHFILEOPSTRUCT, "fFlags", BitOR($FOF_SILENT, $FOF_NOCONFIRMATION, $FOF_NOERRORUI, $FOF_NOCONFIRMMKDIR)) DllStructSetData($SHFILEOPSTRUCT, "fAnyOperationsAborted", $NULL) DllStructSetData($SHFILEOPSTRUCT, "hNameMappings", $NULL) DllStructSetData($SHFILEOPSTRUCT, "lpszProgressTitle", $NULL) $acall = DllCall("shell32.dll", "int", "SHFileOperation", "ptr", DllStructGetPtr($SHFILEOPSTRUCT)) If @error Then Return SetError(@error, @extended, 0) EndIf Return 1 EndFunc ;==>FileRename Func _StringToStruct($string) Local $iLen = StringLen($string) Local $Struct = DllStructCreate("char[" & String($iLen + 2) & "]") DllStructSetData($Struct, 1, $string) DllStructSetData($Struct, 1, 0, $iLen + 1) DllStructSetData($Struct, 1, 0, $iLen + 2) Return $Struct EndFunc ;==>_StringToStruct Edited April 29, 2014 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Jury Posted May 18, 2014 Share Posted May 18, 2014 Thanks John_One Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now