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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
1-1098806958
Bogdan
2004-10-26 20:09
2004.11.07
Rave компоненты


14-1098350984
Викусик
2004-10-21 13:29
2004.11.07
Кстати, еще один вопрос...


14-1097991268
YurikGL
2004-10-17 09:34
2004.11.07
Нашел тут интересные команды


1-1098438349
NATA
2004-10-22 13:45
2004.11.07
Файлы


4-1095785758
Kitty-Kat
2004-09-21 20:55
2004.11.07
Помогите с печатью, минуя механизм 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский