![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет! Я новичек в дельфи вот вопрос:
Необходимо сделать программу которая находит определенный файл на диске и копирует в папку Код:
program Project1;
uses
SysUtils,
Windows;
var
F: TSearchRec;
Path: string;
Attr: Integer;
begin
Path := 'c:\1.txt';
Attr := faAnyFile;
FindFirst(Path, Attr, F);
if F.Name <> '' then
begin
CopyFile('1.txt' ,'c:\blablabla\1.txt',true);
end; |
|
#2
|
|||
|
|||
|
Цитата:
В первом параметре нужно указать полный путь к файлу. Не понятно то куда нужно взять 1.txt. попробуй исправить CopyFile('c:\1.txt' ,'c:\blablabla\1.txt',true); И зачем ты указываешь строкой c:\1.txt если у тебя есть переменная Path CopyFile(PChar(Path) ,'c:\blablabla\1.txt',true); |
|
#3
|
|||
|
|||
|
Спасибо, файл копируется, но появилась новая проблема: необходимо чтобы програма файл искала на всем диске ц, добавил Attr := faAnyFile + faDirectory;, все равно ищет в корне диска
|
|
#4
|
||||
|
||||
|
конечно будет тока в корне искать, что бы искать везде, нужен рекурсивный поиск. Вот код:
Код:
procedure ScanDir(StartDir,Mask: string; List: TStrings);
var
SearchRec: TSearchRec;
begin
if Mask = '' then Mask := '*.*';
if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name) else
if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
begin
List.Add(StartDir + SearchRec.Name + '\');
ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;использовать так: Код:
var
list: TStrings;
begin
list := TStrings.Create;
ScanDir('c:\','123.txt',list);
// в list будут строки с путями до файла 123.txt, если таковой будет найден
list.Free;
end;P.S.: а вообще тебе сюда: http://yandex.ru/yandsearch?clid=486...delphi&l r=36 Последний раз редактировалось Marvel, 23.06.2010 в 14:05. |
|
#5
|
|||
|
|||
|
Спасибо большое за помощь, сейчас попробую
|