Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уникальный идентификатор файла 
V
    Опции темы
freezeman
Дата 6.4.2012, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 6.4.2012,  15:03)
Akira
а если у меня коллекция mkv фильмов по 1,5 гига каждый, каждый раз считать crc или md будет накладно.

Конечно, накладно.
Во-первых, есть ограничение на объем и такие файлы не будут учитываться, скорее всего, если только оперативки гигов 16 не будет...
Во-вторых, скорее всего откажусь от хэширования всего содержимого, как подчеркнул Akira, если часто изменяется содержимое файла, то хэш меняется, что требует дополнительного времени на контроль этого момента.

Если файлы с одинаковым содержимым и разными именами, то просто обходить путем проверки хэша  на момент проверки

Добавлено через 4 минуты и 33 секунды
Цитата(500mhz @ 6.4.2012,  15:13)
На мой взгляд самое удобное при наличии NTFS как файловой системы просто пронумеровать файлы к примеру и каждому файлу присвоить уникальный номер с записью этих данных в поток.
Таким образом файл можно будет изменять, переносить, делать что угодно, идентификатор останется неизменным.

Но как их нумеровать? Просто таблицу соответствия или есть функция winapi?
Хорошая идея, кстати, если только нумерация не собьется 
PM MAIL   Вверх
500mhz
Дата 6.4.2012, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 3
Всего: 14



freezeman, 
http://otvety.google.ru/otvety/thread?tid=0e956353239996eb

а в каспере не дураки сидят ))) используй потоки и будет тебе счастье


--------------------

PM MAIL ICQ   Вверх
freezeman
Дата 6.4.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 6.4.2012,  15:22)
freezeman, 
http://otvety.google.ru/otvety/thread?tid=0e956353239996eb

а в каспере не дураки сидят ))) используй потоки и будет тебе счастье

Хорошая идея. Я могу запустить отдельный поток который будет выполнять нумерацию файла, или же в процессе доступа к этому файлу (У меня идет перехват обращений к файлам).
Но в любом случае, как проводить идентификацию iSwift?
PM MAIL   Вверх
Akira
Дата 6.4.2012, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



500mhz
>> а если у меня коллекция mkv фильмов по 1,5 гига каждый, каждый раз считать crc или md будет накладно.
И я о том же, тем более содержимое может меняться.

>> а в каспере не дураки сидят )))
Глядя на исходники каспера я бы так не утверждал. smile 
А так, да, потоки можно заюзать.
PM MAIL   Вверх
freezeman
Дата 6.4.2012, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(Akira @ 6.4.2012,  15:31)
500mhz
>> а если у меня коллекция mkv фильмов по 1,5 гига каждый, каждый раз считать crc или md будет накладно.
И я о том же, тем более содержимое может меняться.

>> а в каспере не дураки сидят )))
Глядя на исходники каспера я бы так не утверждал. smile 
А так, да, потоки можно заюзать.

А вы видели исходники?)) 
PM MAIL   Вверх
500mhz
Дата 6.4.2012, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 3
Всего: 14



не, ты не понял не многа видимо, потоки в НТФС это не потоки в процессе.
это определенного вида данные которые привязаны к файлу.
размер и тип не ограничен, хоть гигабайт. 

я вижу это так, есть директория с файлами, пробегаемся по всем файлам и нумеруем от 1 до Х, номер файла пишем в поток.

вот тут внятно написано http://alexeivasin.com/post/ntfs-ads.aspx

Добавлено через 1 минуту и 35 секунд
Akira
 smile  меня на форуме каспера уже давно забанили за креатив.


--------------------

PM MAIL ICQ   Вверх
freezeman
Дата 6.4.2012, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата

не, ты не понял не многа видимо, потоки в НТФС это не потоки в процессе.

да, не понял;) Думал к конкретному файлу указать уникальный ID в параметрах что-ли.

Цитата

это определенного вида данные которые привязаны к файлу.
размер и тип не ограничен, хоть гигабайт. 

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

PM MAIL   Вверх
Akira
Дата 6.4.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



freezeman
>> А вы видели исходники?))  
Ога, тот еще трэш один клиф.сус доставляет не говоря об остальном. smile 
Нет, не будет, хотя для твоей задачи достаточно поти и имени.

500mhz
Мну тоже забанен, что еще можно от ахтунг лаба ожидать. smile 

Это сообщение отредактировал(а) Akira - 6.4.2012, 15:52
PM MAIL   Вверх
freezeman
Дата 6.4.2012, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(Akira @ 6.4.2012,  15:50)
freezeman
>> А вы видели исходники?))  
Ога, тот еще трэш один клиф.сус доставляет не говоря об остальном. smile 

Вспомнил ролик презентации)) youtube
Видимо эта побочный эффект их кода  smile  Хотя, что антивирус все равно №1, не сомневаюсь...

Это сообщение отредактировал(а) freezeman - 6.4.2012, 15:55
PM MAIL   Вверх
500mhz
Дата 6.4.2012, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 3
Всего: 14





--------------------

PM MAIL ICQ   Вверх
freezeman
Дата 6.4.2012, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 6.4.2012,  16:00)
http://www.youtube.com/watch?v=XIgnVqLBSw4
этот круче )

Аххаахх, нужно было бы ещё добавить спец. эффекты на подобии в убойного футбола  smile 

Но все же, может и корявый код, но они лидеры на рынке в России точно, а может и в их числе в мире.  smile 

Это сообщение отредактировал(а) freezeman - 6.4.2012, 16:09
PM MAIL   Вверх
12usver12
Дата 6.4.2012, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: 1
Всего: 1



Определись что тебе нужно:
1) Уник. id файла по его местоположению в системе    - тогда покатит контрольная сумма пути файла (учитываем что в crc  есть коллизии, вероятность небольшая но все же)
2) Уник  id файла по местоположению + содержимому - тогда лучше использовать эти индексы

Цитата(Akira)

Не надежно, кто даст гарантию, что у Васи будет работать

С чего решили, что ненадежно ? в msdn это не написано, это же не использование недокументированных функций.
XP включительно и выше должно быть надежно.
Цитата

File IDs are not guaranteed to be unique over time, because file systems are free to reuse them. In some cases, the file ID for a file can change over time.
In the FAT file system, the file ID is generated from the first cluster of the containing directory and the byte offset within the directory of the entry for the file. Some defragmentation products change this byte offset. (Windows in-box defragmentation does not.) Thus, a FAT file ID can change over time. Renaming a file in the FAT file system can also change the file ID, but only if the new file name is longer than the old one.
In the NTFS file system, a file keeps the same file ID until it is deleted. You can replace one file with another file without changing the file ID by using the ReplaceFile function. However, the file ID of the replacement file, not the replaced file, is retained as the file ID of the resulting file.

я так понимаю, что не гарантируется если FAT система, а их процент ничтожно маленький.

p.s. ни разу не пробовал данный метод, но для коротких промежутков времени должно быть нормально, как мне кажется. 
PM MAIL   Вверх
Akira
Дата 6.4.2012, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



12usver12
>> С чего решили, что ненадежно?
Да хотя бы из-за ховнософта. Были прициденты в практике, поэтому не надеюсь на Васю, что у него все в порядке на компе.
PM MAIL   Вверх
freezeman
Дата 6.4.2012, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Цитата

Определись что тебе нужно:
1) Уник. id файла по его местоположению в системе    - тогда покатит контрольная сумма пути файла (учитываем что в crc  есть коллизии, вероятность небольшая но все же)
2) Уник  id файла по местоположению + содержимому - тогда лучше использовать эти индексы

Я пока не решил, если смогу за выходные реализовать второй вариант, если нет, то первый сделаю, он проще...

Цитата

Цитата

File IDs are not guaranteed to be unique over time, because file systems are free to reuse them. In some cases, the file ID for a file can change over time.
In the FAT file system, the file ID is generated from the first cluster of the containing directory and the byte offset within the directory of the entry for the file. Some defragmentation products change this byte offset. (Windows in-box defragmentation does not.) Thus, a FAT file ID can change over time. Renaming a file in the FAT file system can also change the file ID, but only if the new file name is longer than the old one.
In the NTFS file system, a file keeps the same file ID until it is deleted. You can replace one file with another file without changing the file ID by using the ReplaceFile function. However, the file ID of the replacement file, not the replaced file, is retained as the file ID of the resulting file.

я так понимаю, что не гарантируется если FAT система, а их процент ничтожно маленький.

Нужно точно будет проверить, если это так, то зачем все усложнять? Есть идентификатор файла и всё, и все эти хэши, альтернативные потоки только нагружать будут..
PM MAIL   Вверх
xvr
Дата 8.4.2012, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



У ID в отдельном файловом потоке есть недостаток - этот поток запросто может потеряться при каком нибудь копировании файла

PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.