Über basit ve hızlı dosya arama, sadece 2 satır kodla

7-2-2005

Bu kadar salak şeyleri nasıl bulduğumu bende bilmiyorum...

Desktop Search uygulamaları (copernic, msn, google desktop vs.) aslında arama çözümlerimize yeni bir soluk getirdi ancak kendi ciddi salaklıklarını da içeriyorlar. Oluşturdukları indexlerin içerisine exe adlarını, tanınmayan dosyaları ve klasörleri eklemeyerek aslında arama sorununa tam bir çözüm getiremiyorlar.

Evet bilgisayarımdaki dokümanların içerisinde arama yapabiliyorum, ancak basit bir klasörün yerini bulmak için GB' lar arasında dakikalar süren bir serüvene başlamak ve aynı zamanda HDD mi ve CPU' umu (ki ikisini de çok severim) bu iş ile meşgul etmek zorundayım.

OK sistem gayet basit, Konsoldayken;

  1. Index oluşturalım (3-5 dk. sn.)
    dir c:\ /S /B > c:\index.txt
    dir d:\ /S /B >> c:\index.txt

    ... (partitionınız kadar bu işlemi yapın)

    Farkındaysanız birinci seferinde tek yönlendirme ">" diğerlerinde ise ">>" çift kullanıyorum. Yani ilk seferinde tüm dizin yapısını index.txt ye yazarken ikincisinde eski datayı silmeden ona ekleme (append) yapıyor.
  2. Şimdi bu dosyayı favori text editörünüzde (umarım bu notepad değildir, çünkü text boyutu yüksek olacaktır) açın ve arama yapın (1 sn.)

Index oluştuktan sonra güncellenmeyen bir data içerisinde 1sn. gibi sürelerde arama yapabilirsiniz. Bu hakikaten saçma oldu ama olsun çok eğlenceli.

Yaptığım testlerde çok az CPU kullanımı ile 100.000 dosya 3dk. gibi bir sürede indexlendi. Aramalar max. 1 sn. neredeyse sıfır CPU kullanımı ile gerçekleşiyor. Sonuç olarak windows' un varsayılan aramasından çok daha iyi bir sonuç elde ediyorsunuz. Ek olarak eğer kullandığınız text editör (mesela edit+) RegEx vs. destekliyorsa çok daha gelişmiş yeni arama fonksiyonlarına da kavuşmuş oluyorsunuz.

Indexleme işlemleri için şu batch dosyasını kullanabilirsiniz, tabii ki kendi partition listenizi girmeniz gerekiyor.

REM index.bat
@echo off

echo Indexing...

SET index=c:\index.txt

dir c:\ /S /B > %index%
echo .

dir d:\ /S /B >> %index%
echo .

dir f:\ /S /B >> %index%
echo .

echo Done !
pause


Herhangi bir klasöre index.bat ismi ile kaydedip çift tıklayın c:\index.txt dosyasını oluşturacaktır, işlem süresi 3-5 dk. sürebilir. Son olarak yarıda kesmek için Ctrl+C ya da Ctrl+Break i kullanabilirsiniz.

Recent Blog Posts

See all of the blog posts