ID: 41985 Updated by: [EMAIL PROTECTED] Reported By: marc dot bau at gmx dot net Status: Open Bug Type: Feature/Change Request Operating System: Windows PHP Version: 5.2.3 New Comment:
I actually agree with that... however, it's not possible to do this atomically on windows if the file you're moving to exists. The only option is to unlink() the target and then do the rename() but that leaves a race condition. I don't think that is solvable on Windows. Previous Comments: ------------------------------------------------------------------------ [2007-07-13 20:57:49] marc dot bau at gmx dot net Do you know how this works on *nix systems? Well i will tell you - it will *move* the "new file" over the "old file" in an atomic rename. This is what PHP needs to handle on Windows, too. I don't need any extras on *nix to rename. And PHP internal command should work platform independent. This bug should be fixed to make sure the code runs on windows in the *same way* as it does on *nix systems. What is so difficult to understand about this? Writing write code once, *run everywhere* is not possible with this bug. ------------------------------------------------------------------------ [2007-07-13 20:48:09] [EMAIL PROTECTED] Please open a dictionary and translate the error message: PHP Warning: rename(C:\temp\tmp_file.txt.new,C:\temp\tmp_file.txt): ****File exists**** in C:\Temp\rename-test.php on line 2 It says FILE EXISTS, don't you see it? Please do NOT reopen the report again. Thank you. ------------------------------------------------------------------------ [2007-07-13 20:36:36] marc dot bau at gmx dot net As already said, this won't help anything. DON'T WORK: <?php rename('C:\temp\tmp_file.txt.new', 'C:\temp\tmp_file.txt'); ?> Error: PHP Warning: rename(C:\temp\tmp_file.txt.new,C:\temp\tmp_file.txt): File exists in C:\Temp\rename-test.php on line 2 DON'T WORK: <?php rename('C:\\temp\\tmp_file.txt.new', 'C:\\temp\\tmp_file.txt'); ?> Error: PHP Warning: rename(C:\temp\tmp_file.txt.new,C:\temp\tmp_file.txt): File exists in C:\Temp\rename-test.php on line 2 DON'T WORK: <?php rename("C:\\temp\\tmp_file.txt.new", "C:\\temp\\tmp_file.txt"); ?> Error: PHP Warning: rename(C:\temp\tmp_file.txt.new,C:\temp\tmp_file.txt): File exists in C:\Temp\rename-test.php on line 2 DON'T WORK: <?php rename("C:/temp/tmp_file.txt.new", "C:/temp/tmp_file.txt"); ?> Error: PHP Warning: rename(C:/temp/tmp_file.txt.new,C:/temp/tmp_file.txt): File exists in C:\Temp\rename-test.php on line 2 So you have a Windows Box next to you? Before answering, test yourself if you don't trust me, but don't close this case until this bug has been fixed! THX. ------------------------------------------------------------------------ [2007-07-13 18:44:15] [EMAIL PROTECTED] Please escape the \ as advised in the manual. ------------------------------------------------------------------------ [2007-07-13 18:33:37] marc dot bau at gmx dot net This doesn't have anything to do with double quotes. With single quotes this isn't working, too. <?php rename('C:\temp\tmp_file.txt.new', 'C:\temp\tmp_file.txt'); ?> ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41985 -- Edit this bug report at http://bugs.php.net/?id=41985&edit=1