Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1106134833
Vlad Oshin
2005-01-19 14:40
2005.02.06
вопрос экономистам: цена на материнку и доски


3-1104996289
atruhin
2005-01-06 10:24
2005.02.06
Переход от IB 5.6 на FireBird 1.5


14-1105790085
DSKalugin
2005-01-15 14:54
2005.02.06
Где можно стырить список городов Украины?


9-1099659971
Flex
2004-11-05 16:06
2005.02.06
Где можно скачать библеотеку Delphix?


1-1106234638
Mr_Jack
2005-01-20 18:23
2005.02.06
Ошибка Undeclared identifier: CreateOleObject





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский