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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение физического адреса файла (FAT-32) 
:(
    Опции темы
suxxor
Дата 27.7.2012, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно получить физический адрес файла на диске с файловой системой FAT-32

ВОПРОС: Как это сделать?

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

Это сообщение отредактировал(а) suxxor - 27.7.2012, 20:44
PM   Вверх
LeonidPr
Дата 28.7.2012, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2012
Где: г. Чебоксары

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



Что вы понимаете под физическим адресом файла? Номер сектора с которого начинается файл? Если так, то думаю, что вам нужно самому разбирать структуры файловой системы. Сам недавно начал пользоваться FatFs Module. Там вроде FAT32 поддерживается. Это для того, что бы самому не ковыряться во внутренностях ФС.
--------------------
pkunzip.zip
PM MAIL   Вверх
suxxor
Дата 28.7.2012, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Это сообщение отредактировал(а) suxxor - 28.7.2012, 12:52
PM   Вверх
suxxor
Дата 5.8.2012, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот описание архитектуры FAT, и в конце код, но он под Linux. Помогите это переписать под Win

http://samag.ru/archive/article/245
PM   Вверх
xvr
Дата 5.8.2012, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(suxxor @  27.7.2012,  20:42 Найти цитируемый пост)
Нужно получить физический адрес файла на диске с файловой системой FAT-32

А вас не устроит просто уникальное число, соответствующее этому файлу? Его можно получить непосредственно от Windows - GetFileInformationByHandleEx (FileIdBothDirectoryInfo или FileIdInfo)

PM MAIL   Вверх
suxxor
Дата 5.8.2012, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



xvr, а что за уникальное число, соответствующее этому файлу?
PM   Вверх
xvr
Дата 6.8.2012, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(suxxor @ 5.8.2012,  13:32)
xvr, а что за уникальное число, соответствующее этому файлу?

Это зависит от драйвера файловой системы. Гарантируется лишь то, что в пределах логического вольюма (для FAT - это раздел диска) каждый файл получит уникальное число. Как написано в MSDN - для FAT это дисковое смещение до записи в директории для заданного файла.

Цитата

File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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