Форум: "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