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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.