Главная страница
    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.035 c
1-1098423191
denis24
2004-10-22 09:33
2004.11.07
О strringlist и listbox


3-1097233419
NewDelpher
2004-10-08 15:03
2004.11.07
select в функции не получается


6-1093350760
Карелин Артем
2004-08-24 16:32
2004.11.07
SMTP-сервер на дельфях. Пример не встречали?


14-1098216763
Kolan
2004-10-20 00:12
2004.11.07
MediaPlaer


1-1098431826
newh
2004-10-22 11:57
2004.11.07
Image со скроннигом





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