Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Поиск файла в директории!   Найти похожие ветки 

 
grigory ©   (2004-12-20 15:38) [0]

Привет!Подскажите..как мне найти файл,зная только частично путь к нему?
Т.е. например найти excel.exe, зная только, что он в папке Microsoft Office? Как правильно формировать маску поиска? И второе..как потом получить полный путь к найденному файлу?


 
ssk ©   (2004-12-20 16:01) [1]

задаешь параметры стартовой папки, где искать и имя файла. на выходе получишь полный путь к этому файлу.


function GetFullPath(StartRootFolder, Filename: string): string;
var
 FN: string;

 procedure Finding(StartDir: string);
 var
   SearchRec: TSearchRec;
 begin
   StartDir := IncludeTrailingPathDelimiter(StartDir);
   if FindFirst(StartDir + "*.*", faAnyFile, SearchRec) = 0 then
     repeat
       if (SearchRec.Name <> "..") and (SearchRec.Name <> ".") then
         if (SearchRec.Attr and faDirectory) <> faDirectory then
           if AnsiUpperCase(SearchRec.Name) = AnsiUpperCase(Filename) then
             begin
               FN := StartDir + Filename;
               Break;
             end
           else
         else
           Finding(StartDir + SearchRec.Name);
     until FindNext(SearchRec) <> 0;
   FindClose(SearchRec);
 end;

begin
 FN := Filename;
 Finding(StartRootFolder);
 Result := FN;
end;


пример:
var
 s: string;
begin
 s := GetFullPath("c:\", "win.ini");
 ShowMessage(s); // покажет первый найденный путь на диске к файлу win.ini
end;


 
grigory ©   (2004-12-20 16:22) [2]

спасибо большое! а возможно не указывать диск? я конечно догадываюсь,что это невозможно, но..:)


 
ssk ©   (2004-12-20 16:31) [3]

ты должен указать полный путь стартовой папки.
ты ищешь свой excel.exe. вот и укажи:

GetFullPath("c:\program files\microsoft office", "excel.exe");

если на 100% уверен, что файл находится именно где то там -> c:\program files\microsoft office.  кстати, эту информацию можно найти в реестре (программно, конечно) и подставить нужное значение.

а вообще поэкспериментируй... тебе же дан готовый код! вот и доработай на свое усмотрение.


 
grigory ©   (2004-12-20 16:36) [4]

Спасибо! у меня такой же код..он стандартен в этом случае.. просто прога работает в сети, с разными версиями офиса! я-то знаю где у меня что установлена, но вот на других машинах..


 
Fay ©   (2004-12-21 11:17) [5]

2 grigory ©   (20.12.04 16:36) [4]
1) GetLogicalDrives
2) GetDriveType
3) ssk ©   (20.12.04 16:01) [1]



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
14-1105696258
Семен Сорокин
2005-01-14 12:50
2005.02.06
Где найти тесты (Delphi, MSSQL) для приема на работу.


6-1100879482
Chery
2004-11-19 18:51
2005.02.06
Как скопировать файл с клиента на сервер?


1-1106230840
Алексей
2005-01-20 17:20
2005.02.06
Работа со строками


3-1104820506
YurikGL
2005-01-04 09:35
2005.02.06
Автоподстановка из родительской таблицы


6-1101207633
Dmitrij_K
2004-11-23 14:00
2005.02.06
Куки