Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CopyFile не работатет очень нужно помочь [D5, NT4, Win2k]


koly01 ©   (2002-10-11 12:28:00) 

Здравствуйте ALL

Подскажите ктонть, я уже весь перематерился,
есть функция CopyFile(OldFile: PChar, newFile: PChar): Bool
исполдьзую ее для переноса файла, не работает, перенос файла делаю программно из Thread и данные о переносет либо нет заносяться в файл

Потом уже изрядно поиздевавшить над виндами и всеми его создателями ... включая свой руги и голову. Я решил действовать кординально создал новую форму с кнопкой и двумя полями и вставил туда функцию CopyFile(OldFile: PChar, newFile: PChar): Bool и все прекрасно работает ...
ПОМОГИТЕ люди что я не так делаю почему из Thread не работает а отдельно работает может имена файлов не правильного .

С Уважением к ALL
koly01


koly01   (2002-10-11 15:12:00) [1]

Короче мастера все оказалось намного проще ... чем я даже себе представлял мое же приложение держит файл только в другом потоке.
а догадался я об этом вызвав функцию GetLastError , и я этим доволен .... да кстати ReplaceStr это функция из пакета RXLib кстати там еще много полезных строковых функций содержиться иногода прросто без них как без рук ... попробуйте


Best Before 2024   (2002-10-11 14:28:00) [2]

а это что за функция ReplaceStr


Best Before 2024   (2002-10-11 14:23:00) [3]

Ну хорошо, и что же она пишет в
LogFileForStat("File " + PathToFile + "\DATA\DAT" + DateAndTime + ".PRO" +" not copyed "+ " ", DateTimeToStr(Date + Time), PathFromFolder_collection);


koly01   (2002-10-11 13:40:00) [4]

нет файла с таким именем я точно заню


koly01   (2002-10-11 13:39:00) [5]

ну конечно из execute я ее вызываю


Zz_   (2002-10-11 13:38:00) [6]

bFailIfExists

Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails.


qube   (2002-10-11 13:36:00) [7]

А из Execute ты ее вызываешь?


koly01   (2002-10-11 13:32:00) [8]


Function Thread_Stat.SaveFile_ToFolder(Name_OfFileAndPath: String; ErroreFlag: Boolean): Boolean;
var
PathToFile: String;
NameOfFile: String;
DateAndTime: String;
begin
//выбираем путь из имени файла
PathToFile := ExtractFileDir(Name_OfFileAndPath);
//Выбираем имя файла
NameOfFile := ExtractFileName(Name_OfFileAndPath);
//Функция проверяет есть ли папка, если есть то если erroreflag = yes, то
//копируем файл
if not ErroreFlag then
begin
//файл не ошибочный копируем его в папку Data
//Проверяем на сущ папку
if not DirectoryExists(PathToFile + "\DATA") then
begin
//Создаем директорию и копируем файл
if not CreateDir(PathToFile + "\DATA") then
begin
LogFileForStat("Directory " + PathToFile + "\DATA\ not create "+ " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
exit;
end;
end;
DateAndTime := ReplaceStr(DateTimeToStr(Date + Time), ".", "");
DateAndTime := ReplaceStr(DateAndTime, ":", "");
DateAndTime := ReplaceStr(DateAndTime, " ", "");
if FileExists(Name_OfFileAndPath) then
begin
//Копируем файл
if not CopyFile(PChar(Name_OfFileAndPath), PChar(PathToFile + "\DATA\DAT" + DateAndTime + ".PRO"), True) then
begin
LogFileForStat("File " + PathToFile + "\DATA\DAT" + DateAndTime + ".PRO" +" not copyed "+ " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
LogFileForStat("initial file " + Name_OfFileAndPath + " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
exit;
end;
end;
end
else
begin
//Файл Ошибочный
if not DirectoryExists(PathToFile + "\ERROR") then
begin
//Создаем директорию и копируем файл
if not CreateDir(PathToFile + "\ERROR") then
begin
LogFileForStat("Directory " + PathToFile + "\ERROR\ not create "+ " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
exit;
end;
end;
DateAndTime := ReplaceStr(DateTimeToStr(Date + Time), ".", "");
DateAndTime := ReplaceStr(DateAndTime, ":", "");
DateAndTime := ReplaceStr(DateAndTime, " ", "");
//Копируем файл
if FileExists(Name_OfFileAndPath) then
begin
if not CopyFile(PChar(Name_OfFileAndPath), PChar(PathToFile + "\ERROR\ERR" + DateAndTime + ".PRO"), True) then
begin
LogFileForStat("File " + PathToFile + "\ERROR\ERR" + DateAndTime + ".PRO" +" not copyed "+ " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
LogFileForStat("initial file " + Name_OfFileAndPath + " ", DateTimeToStr(Date + Time), PathFromFolder_collection);
exit;
end;
end;
end;
end;

Вот моя функция для переписи файла ... файл закрыт и ни чем не используеться


Anatoly Podgoretsky   (2002-10-11 13:03:00) [9]

Тогда у тебя не должно откомпилироваться, CopyFile(OldFile: PChar, newFile: PChar): Bool - два а не трипараметра
Приведите точное определения функции, которое используется, предполагаемое название модуля и команду вызова, также сделать поиск по всему диску на предмет обнажение других CopyFile функций


Nomad.kz   (2002-10-11 12:59:00) [10]

>>а это, имхо, из дельфей
пардон, PChar не заметил :(


Best Before 2024   (2002-10-11 12:58:00) [11]

Тут без куска кода не разобраться.
Может, файл уже есть или уже открыт кем-то, или путь неверный
Ждем-с!


koly01   (2002-10-11 12:56:00) [12]

Да да извиняюсь ...
CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);

я говорю именно про эту функцию.


Nomad.kz   (2002-10-11 12:55:00) [13]

но лучше, опять же имхо, пользоваться потаком для копирования файла. Работает устойчиво и еще можно Progress Bar приделать.


Nomad.kz   (2002-10-11 12:54:00) [14]

а это, имхо, из дельфей


Best Before 2024   (2002-10-11 12:48:00) [15]

The CopyFile function copies an existing file to a new file.
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);

Вот эта функция?

А эта откуда?
CopyFile(OldFile: PChar, newFile: PChar): Bool


Smithson   (2002-10-11 12:48:00) [16]

Как я понял, CopyFile - самоделка. Посему - код в студию!


koly01   (2002-10-11 12:46:00) [17]

НЕ понял вопроса ... если функция то API, если из какого модуля сохраняю ... то из модуля Thread... уточните пожалуйста.


Anatoly Podgoretsky   (2002-10-11 12:31:00) [18]

Из какого модуля это


Наверх

Титульная страница Поиск, карта сайта Написать письмо