2009-05-17 11 views
-1

私はDelphi2006を使用していますが、私はDelphiコードを使って特定のプログラムの場所を探したいと思います。プログラムの場所を見つける方法

+0

どのプログラムの場所ですか?自分のプログラムが絶対パスを見つけたり、システム上でプログラムを探すようにしたいのですか? –

答えて

1

ここにaFileNameという名前のすべてのファイルを見つけることができるDelphiプログラムがあり、その結果をaDestFiles文字列リストに入れます。

function findFilesCalled(aFileName : String; aDestFiles : TStringList) : boolean; 
var 
    subDirs : TStringList; 
    dir : Char; 
    sRec : TSearchRec; 
    toSearch : string; 
begin 
    subdirs := TStringList.Create; 
    for dir := 'A' to 'Z' do 
    if DirectoryExists(dir + ':\') then 
     subdirs.add(dir + ':'); 
    try 
    while (subdirs.count > 0) do begin 
     toSearch := subdirs[subdirs.count - 1]; 
     subdirs.Delete(subdirs.Count - 1); 
     if FindFirst(toSearch + '\*.*', faDirectory, sRec) = 0 then begin 
     repeat 
      if (sRec.Attr and faDirectory) <> faDirectory then 
      Continue; 
      if (sRec.Name = '.') or (sRec.Name = '..') then 
      Continue; 
      subdirs.Add(toSearch + '\' + sRec.Name); 
     until FindNext(sRec) <> 0; 
     end; 
     FindClose(sRec); 
     if FindFirst(toSearch + '\' + aFileName, faAnyFile, sRec) = 0 then begin 
     repeat 
      aDestFiles.Add(toSearch + '\' + sRec.Name); 
     until FindNext(sRec) <> 0; 
     end; 
     FindClose(sRec); 
    end; 
    finally 
    FreeAndNil(subdirs); 
    end; 
    Result := aDestFiles.Count > 0; 
end; 
関連する問題