Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
3-68656
Азазелло
2002-09-27 09:33
2002.10.21
Не корректная работа BookMark-ов на ClientDataSet-е


1-68727
d_oleg
2002-10-11 10:28
2002.10.21
TGraphicControl - OnKeyDown


1-68738
Igor_
2002-10-11 12:10
2002.10.21
Временно отключить прорисовку формы


14-68945
AndSoft
2002-09-27 14:51
2002.10.21
MySqlDac глючит


6-68892
BigVova
2002-08-19 13:09
2002.10.21
Регистрация хоста и службы в разных Windows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский