>>>>>>DECLARE INTEGER MoveFile IN Win32API ; >>>>>> STRING @lpExistingFileName, ; >>>>>> STRING @lpNewFileName >>>>>> >>>>>>oldName = "FILE$$$" >>>>>>newName = "FILEnew$$$" >>>>>>STRTOFILE("x",m.oldName) >>>>>>? FILE(m.oldName),FILE(m.newName) >>>>>> >>>>>>IF MoveFile(@m.oldName,@m.newName) > 0 >>>>>> ? "ok" >>>>>>ELSE >>>>>> ? "error" >>>>>>ENDIF >>>>>>? FILE(m.oldName),FILE(m.newName) >>>>>>>>>>>>
>>&& "_1HelloЗемля.jpg" >>binaryUnicode=0H5F003100480065006C006C006F00170435043C043B044F042E006A0070006700 >>? STRCONV(binaryUnicode,6) >>>>
>>#DEFINE CREATE_ALWAYS 2 >>#DEFINE FILE_ATTRIBUTE_NORMAL 128 >> >>* look the W suffix for Wide >> DECLARE INTEGER MoveFileW IN kernel32; >> STRING lpExistingFileName,; >> STRING lpNewFileName >> >> DECLARE INTEGER CreateFileW IN kernel32; >> STRING lpFileName,; >> INTEGER dwDesiredAccess,; >> INTEGER dwShareMode,; >> INTEGER lpSecurityAttributes,; >> INTEGER dwCreationDisposition,; >> INTEGER dwFlagsAndAttributes,; >> INTEGER hTemplateFile >> >> DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject >> >>CLEAR >>dbyteFileName = 0h+STRCONV(STRCONV("\\?\"+ADDBS(_VFP.DefaultFilePath),1),5); >> +0H5F003100480065006C006C006F00170435043C043B044F042E006A0070006700 >> >>hFile = CreateFileW(m.dbyteFileName+0H0, 0, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0) >> >>? "File handle returned:", hFile >>= CloseHandle (hFile) >> >>? GETFILE("JPG") >>* RENAME TO ...name123.jpg >>=MoveFileW(m.dbyteFileName+ 0h0 ; >> ,STUFF(m.dbyteFileName,LEN(dbyteFileName)+1-4*2,0,STRCONV(STRCONV("123",1),5))+0h0) >>? GETFILE("JPG") >>>>