[Namazu-win32-users-ja 934] Re: windowsのhidden属性をインデクシングから排除する方法は?

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2007年 3月 7日 (水) 19:06:15 JST


寺西です。

Tadamasa Teranishi wrote:
>  
> 松浦 正信 wrote:
> >
> > このIISのテンポラリとしてwindowsの隠しフォルダを利用して公開直前の
> > ファイルを管理していますが、mknmzでインデックスされてしまいます。
...
> Namazu は元々 UNIX 用のソフトですので、そういった Windows に特化する
> ものは一部の例外を除いてはあまり付いていませんし、積極的にサポート
> することはありません。
> 
> # mknmz の内部で Win32::API を使えば実現できそうではありますが。

ということで、Win32::File を使ってスキップする方法を紹介しておきます。
mknmz の 41行目辺り(mknmz.bat だともう少し後ろになります)の

use File::Basename;

の後に

use Win32::File;

を追加。1403行目辺りの

    if ($target eq '') {
        print STDERR "Warning: target contains empty line, skip it\n";
        next;
    }

の後に

    {
        my $attrib;
        next if (Win32::File::GetAttributes($target, $attrib) != 0);
        if ($attrib & Win32::File::HIDDEN) {
            print STDERR "Warning: $target is HIDDEN file, skip
it\n";        
            next;
        }
    }

を追加すると、隠しファイル属性のファイル、フォルダをスキップするように
なると思います。

ただし、試していませんのでバグがあるかもしれません。
文書ファイルはバックアップした上で試してみてください。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-win32-users-ja メーリングリストの案内