Edit report at http://bugs.php.net/bug.php?id=53811&edit=1
ID: 53811 User updated by: jl_ewing at hotmail dot com Reported by: jl_ewing at hotmail dot com Summary: filesize disregards case sensitive file system Status: Wont fix Type: Bug Package: Filesystem function related Operating System: Windows XP PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: I think you misunderstood. I was calling bull on the "highly experimental" statement. Microsoft fully supports the use the HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive registry key and case sensitivity in the NTFS file system. In fact case sensitive file systems is a POSIX requirement. According to Microsoft: "POSIX requires a certain amount of functionality from the file system, such as the ability for a file to have more than one name (or hard links) and case-sensitive file naming. Neither FAT nor HPFS supports these features, which is another reason why a new file system was required for Windows NT. NTFS supports both hard links and case-sensitive naming. If you want to run in a POSIX-conforming environment, you need at least one NTFS disk partition on your computer." I don't recall stating anything about "all possible functions" and indeed a bulk of the applications (notepad, for example) and utilities do not understand what it means to have case sensitivity enabled or how that translates to the file system. Of course I wasn't asking Microsoft to fix that, I was only asking for PHP to be able to support what the underlying file system supports. If there are, in fact, separate API calls required to support reading/writing to case sensitive files then I understand the task and respectfully withdraw my request at this time. Previous Comments: ------------------------------------------------------------------------ [2011-01-22 18:22:22] paj...@php.net Yes, that's what I meant. Your statement about MSFT fully supporting it with all possible functions is wrong, btw. ------------------------------------------------------------------------ [2011-01-22 18:12:17] jl_ewing at hotmail dot com You mean case sensitive NTFS partition support is highly experimental? I'm calling bull on that as the feature has been around since at least 2005 and Microsoft FULLY supports it and if you were to search TechNet you would find many articles regarding the topic. ------------------------------------------------------------------------ [2011-01-22 13:16:28] paj...@php.net No, it should not. Case insensitive NTFS partition support is highly experimental and requires special cases and APIs calls. We aren't going to support that any time soon. ------------------------------------------------------------------------ [2011-01-22 06:19:02] jl_ewing at hotmail dot com Description: ------------ Windows XP with NTFS and Case in-sensitivity is DISABLED (e.g. the file system is case sensitive). PHP 5.3.5 is VC6 x86 Non Thread Safe ZIP file extracted \PHP535 directory HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive 0 C:\opt\files>dir Volume in drive C is Boot Volume Serial Number is 84D1-331E Directory of C:\opt\files 01/21/2011 11:03 PM <DIR> . 01/21/2011 11:03 PM <DIR> .. 01/21/2011 11:03 PM 3,400 testA.out 01/21/2011 11:03 PM 550 testa.out 2 File(s) 3,950 bytes 2 Dir(s) 65,225,863,168 bytes free C:\PHP535>php -f test.php (see test script) Array ( [testA.out] => 550 [testa.out] => 550 ) The file that was created first seems to be the one that it uses. On NTFS file systems that are case sensitive filesize should pick up the appropriate file sizes Test script: --------------- $dir = '\\opt\\files'; $index = array(); $files = scandir($dir); foreach ($files as $file) { if (is_file($dir . '\\' . $file)) { $sizeX = filesize($dir. "/$file"); $index[$file] = $sizeX; unset ($file, $sizeX); } } print_r($index); Expected result: ---------------- Array ( [testA.out] => 3400 [testa.out] => 550 ) Actual result: -------------- Array ( [testA.out] => 550 [testa.out] => 550 ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53811&edit=1