Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

ПРОБЛЕМЫ С CopyFile() - SOS!!!   Найти похожие ветки 

 
Tahion   (2003-01-08 17:41) [0]

ПРОБЛЕМЫ С 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.


 
TTCustomDelphiMaster ©   (2003-01-08 18:42) [1]


> Если перед этим всем поставить DeleteFile(s+"\Icon.ico"),
> то как узнать, когда закончится удаление

Кода закончится удаление программа перейдет к следующей команде. Посмотрите GetLastError чтобы узнать почему файл не перезаписывается.


 
Тень ©   (2003-01-08 20:41) [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емени файла и т.п. для ясности удалены, да и не нужны
они в основном никогда.

Не моё, но прекрасно работает


 
AGGRESSOR   (2003-01-09 14:41) [3]

DeleteFile;
Sleep(200);
CopyFile;
:)



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-62753
Николай Быков
2003-01-04 15:47
2003.01.20
Помогите уже кто-нибудь в конце-то концов :-)))


7-62867
AquaSun1
2002-10-31 07:39
2003.01.20
Основные характеристики


6-62706
VaS
2002-11-22 12:52
2003.01.20
Открытие сокета в неглавной нити


3-62441
Andy Eremin
2002-12-27 07:29
2003.01.20
печать


3-62424
valmont
2002-12-26 20:05
2003.01.20
DBGrid и его шапка