Bug #70943 [Com]: fopen() can't open a file if path is 259 characters long
[email protected] ("nathanael at gnat dot ca")
| Newsgroups | php.bugs |
|---|---|
| Message-ID | <[email protected]> |
Edit report at https://bugs.php.net/bug.php?id=70943&edit=1
ID: 70943
Comment by: nathanael at gnat dot ca
Reported by: emanuele at fondani dot it
Summary: fopen() can't open a file if path is 259 characters
long
Status: Open
Type: Bug
Package: Filesystem function related
Operating System: Windows 10
PHP Version: 5.6.15
Block user comment: N
Private report: N
New Comment:
I have the same problem on Windows Server 2008, php 5.6.16
Previous Comments:
------------------------------------------------------------------------
[2015-12-08 07:58:30] a dot ehrsam at hotmail dot com
I think we have the following limitation of Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath . This has been a discussion for .NET as well: https://github.com/dotnet/corefx/issues/645
------------------------------------------------------------------------
[2015-12-08 06:52:45] [email protected]
Note: Most file systems support up to 255 chars for file names. Path length are unlimited mostly.
https://en.wikipedia.org/wiki/Comparison_of_file_systems
------------------------------------------------------------------------
[2015-11-30 07:06:45] adrian dot ehrsam at students dot fhnw dot ch
This is an issue of composer as well: https://github.com/composer/composer/issues/4628 . It is the well-known Windows Long path Issue that can be fixed.
------------------------------------------------------------------------
[2015-11-19 18:01:09] emanuele at fondani dot it
Description:
------------
fopen() function cannot access files whose path is more than 258 characters long.
Test script:
---------------
<?php
// Generates a sample file whose path is exactly 259 characters long
$testFile = __DIR__."\\".str_repeat("a", 254 - strlen(__DIR__)).".dat";
echo "Generating a file with a path length of ".strlen($testFile)." characters...\r\n";
touch($testFile);
echo "Opening file... ";
if ($fp = fopen($testFile, "r")) {
fclose($fp);
echo "OK";
}
Expected result:
----------------
Generating a file with a path length of 259 characters...
Opening file... OK
Actual result:
--------------
Generating a file with a path length of 259 characters...
Opening file...
Warning: fopen(S:\Emanuele\Temp\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.dat): failed to open stream: Invalid argument in test.php on line 8
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=70943&edit=1