![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Всем привет!
Подскажите, пожалуйста, в структуре BY_HANDLE_FILE_INFORMATION есть два параметра nFileIndexLow и nFileIndexHigh младший и старший идентификатор файла, что означает младший/старший? Я же могу однозначно идентифицировать конкретный файл по этим параметрам? |
|||
|
||||
| 12usver12 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 5.1.2007 Репутация: 1 Всего: 1 |
||||
|
||||
| freezeman |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Плохо...как тогда по-другому идентифицировать файл, кроме пути к нему на диске? Добавлено через 5 минут и 36 секунд Если сделать MD5 или CRC16? Для работы программы критична скорость работы, то есть получение хэша файла не скажется ли сильно на производительности? |
||||
|
|||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 3 Всего: 14 |
Где идентифицировать? На диске или как процесс?
Добавлено через 3 минуты и 2 секунды Сорри ступил ))) "на диске" Ну если файловая система ntfs то можно инфу некую о файле в поток записать ) -------------------- |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Я вот подумал, что не нужно делать хэш всего файла, а только пути к нему, так и быстрее проверять... |
|||
|
||||
| 12usver12 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 5.1.2007 Репутация: 1 Всего: 1 |
читаем плохо. ничего сложного, для идеального решения тебе нужно сформировать этот Id через 128-битовое число:
|
||||
|
|||||
| Akira |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 26.3.2012 Репутация: нет Всего: нет |
Нет, ничего такого нет, все делают контрольные суммы. Если файл не большой то оверхеда практически нет.
12usver12 Не надежно, кто даст гарантию, что у Васи будет работать. Это сообщение отредактировал(а) Akira - 6.4.2012, 14:03 |
|||
|
||||
| freezeman |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
А это тогда что?
|
||||||||
|
|||||||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Нет, немного не поняли вы вопрос, мне нужно идентифицировать уникально файл. Получил по HANDLE файла его путь, но сравнение будет выполняться долго. Если у параметров файла был бы уникально его идентифицирующий, то нет проблем все нормально, но нет Скорее всего лучше будет использовать CRC16 для кодирования имени файла, а потом сравнивать только полученные ключи... |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 3 Всего: 14 |
а если 2 одинаковых файла а имена только разные?
-------------------- |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Я думал над этим, тогда придется делать хэш по содержимому файла, но мне кажется, что при большом объеме времени много уходить будет... |
|||
|
||||
| Akira |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 26.3.2012 Репутация: нет Всего: нет |
freezeman
>> CRC16 Ты пытаешься экономить на спичках можешь спокойно использовать CRC32 или MD5. По поводу содержимого файла, а если файл часто используем и дописывается? |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 3 Всего: 14 |
Akira
а если у меня коллекция mkv фильмов по 1,5 гига каждый, каждый раз считать crc или md будет накладно. -------------------- |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
А я не знаю скорость работы, что лучше CRC16, CRC32 или MD5. Если у файла изменяется содержимое, это никак не влияет на работу. Этот измененный файл просто не будет учитываться, потом вытеснится из памяти (если вы помните мою предыдущую тему "Виртуальная память", поймете о чем я), и если требуется опять туда будет занесен. Хотя, если стоит подумать о изменении файла в ОП сразу после изменения содержимого файла, но это потом, если успею... |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 3 Всего: 14 |
На мой взгляд самое удобное при наличии NTFS как файловой системы просто пронумеровать файлы к примеру и каждому файлу присвоить уникальный номер с записью этих данных в поток.
Таким образом файл можно будет изменять, переносить, делать что угодно, идентификатор останется неизменным. -------------------- |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |