![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перенос файлов без запроса [D6, XP]
Pavelkq © (2008-03-26 07:23:00)Пишу программу для автоматического копирования файлов в ночное время на сервере. Для этого воспользовался процедурой:
procedure PCopy (PFrom : string ; PTo : string; POperation: Byte);
var
OpStruc: TSHFileOpStruct;
frombuf, tobuf: array [0..128] of Char;
begin
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf, PFrom );
StrPCopy( tobuf, PTo );
with OpStruc do begin
Wnd:= HANDLE_FLAG_INHERIT;
if POperation=1 then wFunc:= FO_COPY;
if POperation=0 then wFunc:= FO_DELETE;
pFrom:= @frombuf;
pTo:=@tobuf;
fFlags:= FOF_NOCONFIRMATION;
fAnyOperationsAborted:= False;
hNameMappings:= Nil;
lpszProgressTitle:= Nil;
end;
ShFileOperation( OpStruc );
end;
Далее вызываю простейшим способом:
//Создаем папку текущей даты
PFolder:='d:\copy\'+ DateToStr(Date);
CreateDir (PFolder);
//Копирование всей общей
PCopy ('d:\users\общая\*.*',PFolder,1);
После выполнения программы папка пуста. Происходит это, очевидно, в следствии того, что программа натыкается на файлы недоступные для чтения. Это видно потому, что при копировании обычными средствами вынды появляется сообщение "Не удается скопировать файл". Как можно заставить программу игнорировать недоступные файлы и переходить к следующим?
Рамиль (2008-03-26 11:55:00) [1]xcopy /?
Справится со всем.
guav (2008-03-26 11:51:00) [2]> [1] Ega23 © (26.03.08 07:59)
> TFileStream + fmShareDenyNone + f1
Не советую, если есть полезные метаданные, они не будут скопированы, или их все прийдётся скопировать вручную, будет много лишнего кода.
guav (2008-03-26 11:47:00) [3]FOF_NO_UI
Loginov Dmitry (2008-03-26 08:06:00) [4]CopyFile() + f1
Ega23 (2008-03-26 07:59:00) [5]TFileStream + fmShareDenyNone + f1