Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
ВнизПРОБЛЕМЫ С 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c