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

Reply via email to