2009-05-17 8 views
-1

J'utilise Delphi2006 et je veux trouver l'emplacement d'un programme particulier en utilisant le code Delphi.Comment trouver un emplacement d'un programme

+0

emplacement de quel programme? Vous voulez que votre programme trouve son propre chemin absolu ou cherche un programme sur le système? –

Répondre

1

Voici un programme Delphi qui peut trouver tous les fichiers appelés AFileName, et met les résultats dans le stringlist 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; 
Questions connexes