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

Вниз

CopyFile не работатет очень нужно помочь   Найти похожие ветки 

 
koly01 ©   (2002-10-11 12:28) [0]

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

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

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

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


 
Anatoly Podgoretsky ©   (2002-10-11 12:31) [1]

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


 
koly01 ©   (2002-10-11 12:46) [2]

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


 
Smithson ©   (2002-10-11 12:48) [3]

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


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

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


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

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


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

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


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

Да да извиняюсь ...
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
);

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


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

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


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

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



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

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


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


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;

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


 
qube ©   (2002-10-11 13:36) [12]

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


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

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.


 
koly01 ©   (2002-10-11 13:39) [14]

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


 
koly01 ©   (2002-10-11 13:40) [15]

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


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

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


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

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


 
koly01 ©   (2002-10-11 15:12) [18]

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



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

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

Наверх




Память: 0.51 MB
Время: 0.016 c
1-68845
MetalFan
2002-10-08 15:52
2002.10.21
окно CPU


7-69029
moorCat
2002-08-13 18:25
2002.10.21
Как отследить закрытие приложения?


7-69034
Dmitry Raduzhan
2002-08-14 10:05
2002.10.21
таймер (вероятно к Ученик)


8-68879
Yuri Btr
2002-06-21 13:33
2002.10.21
Длина звукозаписи в файле (wav, mp3, wma ...)


14-68985
Shrek
2002-09-28 20:12
2002.10.21
Visual Basic