react Цитата: Вообще было бы неплохо узнать рефлизыцию обоих вариантов...
А зачем тебе? Просто хочется знать: зачем такое может сейчас понадобиться?
Можно попользовать Win32 API SearchPath правда только для поиска конкретного файла, не для перечисления содержимого. Насколько знаю из файловых функций альтернативы FindFirst/FindNext нет. Кстати, чем же они тебе не подходят
Альтернативой Win32 является использование другого API винды, например Native API под NT или ты можешь написать свой драйвер для перечисления файлов, используя Kernel API
и обращаться к нему за такой инфой
Но, ИМХО кроме некоторых специфицеских случаев, это совершенно не надо
OldGopher Цитата: Не правильно:
-----------------
LPWIN32_FIND_DATA finddata;
FindFirstFile("C:\1\*.rar", finddata);
Правильно:
--------------
WIN32_FIND_DATA finddata;
FindFirstFile("C:\1\*.rar", &finddata);
Ну зачем же так категорично
react достаточно было выделить память и все бы заработало...
Например, с помощью new (см. мой пост выше)
Цитата: А если кто хочет пройти структуру диска низким уровнем под Windows, то флаг в руки и электричку навстречу.
Спасибо за добрые пожелания...
Цитата: Т.е. и это тоже возможно, но под Windows 9X придется иметь дело с thunk-транслятором, хотя и это можно...
Это не просто возможно, это достаточно просто
Проблемой является только код разбора файловых структур. Тут я согласен нужна достаточно веская причина, чтобы начать писать софт такого рода.
Если нужно пришлю пример работы под Win9x напрямую с диском. Писал когда-то по молодости
Цитата: Такими приколами занимаются программы восстановления, ремонта и бинарного редактирования, типа WinHex. Если будете этим заниматься, лучше всего выделить отдельный комп и постоянно делать backups
Лучше наверное использовать VMWare. Создать машину, скопировать ее и держать резервной. Если винт на первой "накроется", то легко его восстановить просто скопировав файл виртуального диска.
Ну и немного тех. инфы...
Методы прямого доступа к диску различаются в зависимости от системы.
WinNT предоставляет непосредственный доступ как к логическим дискам, так и к физическим. Для этого используется функция CreateFile, у которой в качестве имени используется либо "\.\PHYSICALDRIVE0", либо "\.\A:" для получения доступа к диску как к файлу. Затем используются стандартные функции для файлов: SetFilePointer, ReadFile, WriteFile и т.д. Кроме того, в WinNT работают функции IOCTL и FSCTL для устройств. Поподробнее об этом можно почитать в хелпе по Win32, например в MSDN, см. CreateFile, DeviceIoControl.
В Win9x все реализовано по-другому, и метод, применяемый в NT, не работает. Собственно, для демонстрации его я и написал программку, которую предложил выслать.
Если коротко: доступ к диску в Win95 можно получить, используя те же функции DOS и BIOS, что и в обычном случае, только вызывать их надо не напрямую (типа asm{ ... Int 0x13}), а используя для вызова VWin32.VxD.
Загрузить драйвер можно с помощью все той же функции CreateFile.
"Общение" с ним ведется с помощью функции DeviceIoControl. При этом функции передается структура со значениями регистров, и, в зависимости от требуемого действия, вызывается соответсвующая подфункция драйвера VxD.
Это один из вариантов доступа, и я не утверждаю что он лучший или даже просто хороший
Если коротко то это все
Получив доступ к диску, дальше разбираем структуры файловой системы и готово