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

Поиск:

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


Новичок



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

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



Привет всем, уже 2ой день пытаюсь накопать инфу : как узнать номер сектора где расположено начало файла по его (файла) имени.

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

Если кто-то встречался с такой задачкой или думал на эту тему то давайте подумаем вместе.
PM MAIL   Вверх
p0s0l
Дата 7.3.2006, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Начиная с Win2k можно использовать FSCTL_GET_RETRIEVAL_POINTERS для получения № кластеров, занимаемых файлом... Количество секторов в кластере можно узнать через GetDiskFreeSpace...



--------------------
С уважением, г-н Посол.
PM   Вверх
redpinguin
Дата 7.3.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Чего то у меня не получается никак smile

Код

    HANDLE hFile;
    CString file_name="C:\\temp.txt";

    hFile=CreateFile(file_name,FILE_READ_ATTRIBUTES,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

    if(hFile==INVALID_HANDLE_VALUE)
    {
        AfxMessageBox("ERROR CREATE FILE");
        return;
    }

    STARTING_VCN_INPUT_BUFFER StVCN; 
        StVCN.StartingVcn.QuadPart = 0; 
        DWORD BytesReturned = 0;

    BYTE * OutBuffer = NULL;
    DWORD  OutBufferSize;
    OutBufferSize =    4096;

    DeviceIoControl(hFile,FSCTL_GET_RETRIEVAL_POINTERS,&StVCN,sizeof(StVCN),OutBuffer,OutBufferSize,&BytesReturned,NULL);

    delete [] OutBuffer;


даже этот маленький кусок кода и тот не работает.
Хотя я уже и сам не сильно понимаю что он должен делать.

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

Или просто скажи чот мне надо почитать (на русском, а то от ломаного английского уже ломит) чтоб прийти к этому (будет замечаельно если это будет електронный док-т);

PM MAIL   Вверх
p0s0l
Дата 9.3.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Нашел примерчик на Си:
http://www.wasm.ru/article.php?article=lockfileswork
Мотай вниз до GetFileClusters


--------------------
С уважением, г-н Посол.
PM   Вверх
redpinguin
Дата 24.3.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



p0s0l огромное спасибо ты меня на несколько мыслей натолкнул )
Я этот код уже находил но как-то не внимательно просматривал )
ЗЫ thx
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.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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