Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.011 c
1-62491
Vladimir1
2003-01-10 13:09
2003.01.20
Программная задержка


14-62732
Cobalt
2002-12-23 23:51
2003.01.20
Об удалении


1-62558
Артём К
2003-01-11 08:23
2003.01.20
Заливка в виде градиента для формы


4-62906
XED
2002-12-03 15:34
2003.01.20
Как перехватить запуск какойта проги!!!


6-62683
LeReve
2002-11-20 20:03
2003.01.20
Ошибка при передачи данных через socket!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский