【未解決】PHPのDirectoryIterator::isDotの理解できない挙動についてのメモ

Windows10 HOMEのPCでPHPのDirectoryIteratorでディレクトリの中のファイルやディレクトリを列挙するコードを書いていた時、理解できない現象に遭遇したことについてメモしておく。
'.'や'..'は表示して欲しくないので、最初はisDotで判定しようとした。

<?php
if ( isset($_GET['dir']) ){
    $dir = $_GET['dir'];
} else {
    $dir = './';
}
$this_page = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];

$iterator = new DirectoryIterator($dir);
foreach($iterator as $file){
    if ($file->isFile()){
        $pathname = $file->getPathname();
        print "<li><a href='{$pathname}'>{$pathname}</a></li>";
    }
}
foreach($iterator as $file){
    if ($file->isDir()) {
        $pathname = $file->getPathname();
        $sub1 = substr($pathname,-2);
        $sub2 = substr($pathname,-3);
//        if ( !file->isDot() ){
        if( $sub1 != '\.' && $sub2 != '\..' ){
            print "<li><a href='{$this_page}?dir={$pathname}'>{$pathname}</a></li>";
        }
    }
}

ファイルなどは以下の通りだが、なぜか、isDot()を使ったときは'dir11'と'dir12'が表示されなくなってしまう。

    ディレクトリ: C:\WebApplication\php\Documents\dir1


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2022/11/08     11:19                dir11
d-----        2022/11/08     11:20                dir12
-a----        2022/11/08     11:18             26 doca.txt

仕方なく部分文字列で判定するように変更したのだが・・・。
なぜ、'dir11'と'dir12'とはisDotなのだろう?