Главная страница
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.016 c
3-62418
Mamay
2002-12-22 18:57
2003.01.20
MIDAS - клиенты не видят обновлений друг друга


3-62397
stoper
2002-12-23 13:31
2003.01.20
dbf,ASCII


8-62666
Svin
2002-10-01 08:38
2003.01.20
3d


8-62677
nsvi
2002-09-30 11:32
2003.01.20
Предлагаю решение проблемы сохранения 256-цветных иконок


1-62612
HelpMe
2003-01-09 13:24
2003.01.20
Как это сделать?