![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ПРОБЛЕМЫ С CopyFile() - SOS!!! [D4, Win95/98, WinXP]
Tahion © (2003-01-08 17:41:00)ПРОБЛЕМЫ С CopyFile() - SOS!!!
Пытаюсь скопировать файл в корневую папку диска (s) (Код ниже). ThemeIni.ReadString(...) ТОЧНО выдает правильный путь к существующему файлу - проверял! Если файла s+"\Icon.ico" не существует, то все хорошо. А если такой файл уже есть, то появл. сообщение, что нет доступа к файлу. Почему!?!?!?! c:\ICON.ICO - это не тот файл, к которому может быть обращение системы. Я его не трогаю. Почему тогда он занят?
Всем ответившим заранее спасибо!!!
Если не тяжело, то желательно на tahion@ukrpost.net
if CopyFile(PChar(ThemeIni.ReadString("Бла-бла", "Бла"+s, Application.ExeName)), PChar(s+"\Icon.ico"), false) then
begin
//...Действия с другим файлом...
end
else
begin
MessageDlg("Can""t copy file to "+s+" Error: "+SysErrorMessage(GetLastError), mtError, [mbOk], 0);
end;
SetFileAttributes(PChar(s+"\Icon.ico"), FILE_ATTRIBUTE_HIDDEN); //Делаем файл иконки скрытым
//В Icon.ico может находится любой тип файла - не обязательно ico
//s - это путь к файлу s:string
..Происходит все в Делфи 4
P.S. Если перед этим всем поставить DeleteFile(s+"\Icon.ico"), то как узнать, когда закончится удаление файла (FileExists не подходит). Знать эо надо потому, что даже если я ставлю DeleteFile(s+"\Icon.ico"), то та же ошибка повторяется время от времени, а когда я, после появления ошибки, выполняю действия еще раз уже все Ok.
AGGRESSOR (2003-01-09 14:41:00) [1]DeleteFile;
Sleep(200);
CopyFile;
:)
Тень (2003-01-08 20:41:00) [2]позволяет скопиpовать как весь файл пpи From и Count = 0,
так и пpоизвольный его кусок.
function CopyFile( InFile,OutFile: String; From,Count: Longint ): Longint;
var
InFS,OutFS: TFileStream;
begin
InFS := TFileStream.Create( InFile, fmOpenRead );
OutFS := TFileStream.Create( OutFile, fmCreate );
InFS.Seek( From, soFromBeginning );
Result := OutFS.CopyFrom( InFS, Count );
InFS.Free;
OutFS.Free;
end;
try..except pасставляются по вкусу, а навоpоты вpоде установки
атpибутов,даты и вpемени файла и т.п. для ясности удалены, да и не нужны
они в основном никогда.
Не моё, но прекрасно работает
TTCustomDelphiMaster (2003-01-08 18:42:00) [3]
> Если перед этим всем поставить DeleteFile(s+"\Icon.ico"),
> то как узнать, когда закончится удаление
Кода закончится удаление программа перейдет к следующей команде. Посмотрите GetLastError чтобы узнать почему файл не перезаписывается.