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

Вниз

Файлы   Найти похожие ветки 

 
NATA   (2004-10-22 13:45) [0]

еще раз добрый день...такая проблема мне надо копировать файл с одного место на другое но вот в чем проблема...файл который надо копировать это архив создоваемы другой программой а как моей программе понять можно ли его начать копировать(т.е. завершилось ли архивирование)????


 
clickmaker ©   (2004-10-22 13:57) [1]

while (true) do begin
   hFile := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
   dwError := GetLastError;
   if (hFile <> INVALID_HANDLE_VALUE) then
     CloseHandle(hFile);
   if (dwError <> ERROR_SHARING_VIOLATION) then
     Break;
   Sleep(2000);
 end;
// теперь можно копировать


 
snake1977   (2004-10-22 13:58) [2]

сталкивался с такой проблеммой когда требуется переписыватьфайл и не известно создан он до конца другим процессом или нет.
было масса предложений, но верного способа я так и не нашел :)
в ходе так сказать исследования этой проблеммы могу только сказать что:
если это дело присходит в 2000/NT/XP, то можеш не беспокоиться, система не даст тебе его скопировать пока он не будет освобожден другим процессом.
в 95/98/МЕ проблема остается

мне предлагали следующие варианты
1. делать RenameFile() пока резултатом выполнения не будет True
2. копировать файл и сравнивать его размер с исходным


 
Romkin ©   (2004-10-22 14:04) [3]

А может, попроще, через FindFirstChangeNotification?


 
NATA   (2004-10-22 14:27) [4]


> clickmaker ©   (22.10.04 13:57) [1]
> while (true) do begin
>    hFile := CreateFile(PChar(FileName), GENERIC_READ or
> GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
>    dwError := GetLastError;
>    if (hFile <> INVALID_HANDLE_VALUE) then
>      CloseHandle(hFile);
>    if (dwError <> ERROR_SHARING_VIOLATION) then
>      Break;
>    Sleep(2000);
>  end;
а модуль нужно какой нибуть подключать?
> // теперь можно копировать


 
clickmaker ©   (2004-10-22 14:41) [5]


> [4] NATA   (22.10.04 14:27)

а что, так не компилируется?


 
NATA   (2004-10-22 14:42) [6]

извение за глупый вопрос а hFile это что за тип?????
и вообще надо ли подключать модуль какой нибуть?


 
NATA   (2004-10-22 14:42) [7]


> clickmaker ©   (22.10.04 14:41) [5]
>
> > [4] NATA   (22.10.04 14:27)
>
> а что, так не компилируется?
неа...:(


 
Ega23 ©   (2004-10-22 14:44) [8]

Есть маза, что тебе рановато хвататься за такие задачи. Хотя....


 
Ega23 ©   (2004-10-22 14:44) [9]

THandle. Или HWND, надо смотреть.


 
NATA   (2004-10-22 14:45) [10]

hFile := CreateFile(PChar(FileName), GENERIC_READ or  GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);

пишет что нехватает ( но := найдены....


 
Anatoly Podgoretsky ©   (2004-10-22 14:47) [11]

NATA   (22.10.04 14:27) [4]
Windows


 
clickmaker ©   (2004-10-22 14:55) [12]


>  [6] NATA   (22.10.04 14:42)
> извение за глупый вопрос а hFile это что за тип?????

var
 hFile: THandle;
 dwError: cardinal;



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

Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
3-1097070131
Пуртик
2004-10-06 17:42
2004.11.07
Как ускорить закачку?


14-1098029285
Gero
2004-10-17 20:08
2004.11.07
Всем сисадминам


1-1098863806
ызфт
2004-10-27 11:56
2004.11.07
Запутался в ООП


1-1098860642
snake1977
2004-10-27 11:04
2004.11.07
HTML


1-1098346483
Arrows
2004-10-21 12:14
2004.11.07
Работа с файлами





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