Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > WinAPI
Перезагрузить страницу Как узнать что файл скопировалса до конца???
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
mahara mahara вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.09.2011
По умолчанию Как узнать что файл скопировалса до конца??? - 13.09.2011, 13:23

ПОМОГИТЕ, как узнать что файл скопировалса до конца, с помощю ReadDirectoryChangesW нужен пример...
Ответить с цитированием
  (#2 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 15.09.2011, 14:53

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


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#3 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 15.09.2011, 15:16

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


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#4 (permalink)) Старый
mahara mahara вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.09.2011
По умолчанию 15.09.2011, 15:44

Цитата:
Сообщение от Влад Посмотреть сообщение
Ха, ну, собственно, если ты копируешь файл откуда-то (откуда?) - ты ведь можешь предварительно получить его размер, и по ReadDirectoryChangesW просто проверять - все уже скопировано, или еще что-то осталось?
Я проверяю папку на появление новых файлов, если файл создалса начинаю его обрабатывать, но файл начинает обрабатываться еще не скопировавшысь до конца, о входном файле ничего не знаю кроме того что он XML формата...
Ответить с цитированием
  (#5 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 15.09.2011, 16:00

Ну, можно попробовать два варианта:
1) Попытаться открыть файл с флагом FILE_SHARE_WRITE, если файл ещё копируется, открыть его с правами на запись не должно получиться.
2) Программно переместить файл в отдельную временную директорию (я когда-то так делал). Если файл ещё копируется, переместить его не выйдет, соответственно, надо подождать и повторить попытку.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 15.09.2011, 17:40

Цитата:
Сообщение от mahara Посмотреть сообщение
Я проверяю папку на появление новых файлов, .....
1. А кто и откуда инициирует это самое "появление новых файлов" ?
2. Ага, ну, если это XML-документ, то уже становится немного легче. Вот типичная структура XML:
XML Код:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<RootNode ....>
   ......
</RootNode>
где RootNode (он может называться и как-нибудь иначе, зависит от документа, - например, body) - тэг корневого узла документа. Встретив открывающий тэг корневого узла, читай и обрабатывай свой файл, пока не встретишь закрывающий тэг. Смотри также документацию по DOM.


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Страница не грузится до конца Lilu_K PHP 4 18.08.2009 12:41
Можно ли узнать кто записал или с какого ПК был сохранен файл на компьютере? CorbenD Любые вопросы от новичков 2 18.02.2008 22:17
Кто заблокировал файл как узнать Diez .NET 14 21.12.2007 13:42
Признак конца файла zxspect С/С++ 9 09.12.2005 13:26
Как узнать открыт ли файл для чтения antpu238 С/С++ 10 23.08.2005 06:49
Признак конца страницы... UnbIpb Visual Basic 11 12.07.2005 18:58
Сортировка с конца Diros Visual Basic 4 11.03.2005 08:21
Как можно узнать на чем написан exe файл Zerguwa Офтопик 15 11.02.2005 16:50
ASCII- код конца строки voodOOpeople Visual C++ 9 19.10.2004 18:07
как узнать скачан ли файл полностью? Anonymous PHP 0 07.10.2003 22:24
Как узнать activeX и где искать файл, который нужно зарегистрировать Anonymous Visual C++ 0 08.08.2003 19:39



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов