Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / как расширить файл? / 10 сообщений из 10, страница 1 из 1
20.09.2006, 14:43
    #33999976
ЯЖеГость
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
Здравствуйте!

Используя winApi OpenFile - создал файл, теперь хочу его расширить, например, на 10000 байт. Есть ли win функция, для расширения файла на N байт ( НЕ ЗАПИСЬ НАЧИНАЯ С ПОСЛЕ ПОСЛЕДНЕГО В ФАЙЛЕ БАТА 10000 БАЙТ!!!, а просто расширение без какой либо инициализации байт)
...
Рейтинг: 0 / 0
20.09.2006, 15:16
    #34000153
как расширить файл?
ЯЖеГостьЗдравствуйте!

Используя winApi OpenFile - создал файл, теперь хочу его расширить, например, на 10000 байт. Есть ли win функция, для расширения файла на N байт ( НЕ ЗАПИСЬ НАЧИНАЯ С ПОСЛЕ ПОСЛЕДНЕГО В ФАЙЛЕ БАТА 10000 БАЙТ!!!, а просто расширение без какой либо инициализации байт)
А, так ты хочешь, чтобы как с памятью: создал файл определенного размера, а там мусор... Потому убрал мусор и записал что надо....
ИМХО, чтобы так сделать, надо переписать примерно половину ОСи.
Ну и флаг Вам в руки - писать собственную ОСь.
А если Вы собираетесь работать под Виндой, то СОВЕТ: почитайте где-нибудь про работу ОСи с файлами подробнее: File Allocation Table, выделение дискового пространства, оптимизация выделения дискового пространства и т.д. Тогда подобных вопросов станет меньше...
...
Рейтинг: 0 / 0
20.09.2006, 15:56
    #34000367
andy55555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
BOOL SetFileValidData(
HANDLE hFile,
LONGLONG ValidDataLength
);

?
...
Рейтинг: 0 / 0
20.09.2006, 16:28
    #34000500
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
ЯЖеГостьЗдравствуйте!

Используя winApi OpenFile - создал файл, теперь хочу его расширить, например, на 10000 байт. Есть ли win функция, для расширения файла на N байт ( НЕ ЗАПИСЬ НАЧИНАЯ С ПОСЛЕ ПОСЛЕДНЕГО В ФАЙЛЕ БАТА 10000 БАЙТ!!!, а просто расширение без какой либо инициализации байт)

fseek
с параметром SEEK_END (End of file.) Вам поможет...



Код: plaintext
1.
result = fseek(stream, 10000L, SEEK_END);

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
20.09.2006, 16:42
    #34000573
ЯЖеГость
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
kolobok0 ЯЖеГостьЗдравствуйте!

Используя winApi OpenFile - создал файл, теперь хочу его расширить, например, на 10000 байт. Есть ли win функция, для расширения файла на N байт ( НЕ ЗАПИСЬ НАЧИНАЯ С ПОСЛЕ ПОСЛЕДНЕГО В ФАЙЛЕ БАТА 10000 БАЙТ!!!, а просто расширение без какой либо инициализации байт)

fseek
с параметром SEEK_END (End of file.) Вам поможет...



Код: plaintext
1.
result = fseek(stream, 10000L, SEEK_END);

удачи Вам
(круглый)


Спасибо!

Я понял что seek также расширяет файл!
...
Рейтинг: 0 / 0
20.09.2006, 19:28
    #34001177
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
Станислав С...File Allocation Table

Зачем такие советы давать? Чтобы умным прослыть? И куда бедный чел. сунется со своими знаниями FAT? Свою собственную ось будет лабать?
...
Рейтинг: 0 / 0
21.09.2006, 12:24
    #34002587
Makar4ik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
Код: plaintext
1.
2.
HANDLE fhandle = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE,  0 , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,  0 );
SetFilePointer(fhandle,  10000 , NULL, FILE_BEGIN);
SetEndOfFile(fhandle);    //CloseHandle(fhandle);
...
Рейтинг: 0 / 0
21.09.2006, 15:37
    #34003583
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
тока чуваку нужно было FILE_END
...
Рейтинг: 0 / 0
21.09.2006, 15:39
    #34003596
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
и не забыть потом вернуть указатель назад.
...
Рейтинг: 0 / 0
25.09.2006, 17:08
    #34010543
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как расширить файл?
fseek - классная штука.
Предположим, кто -то расшарил папку в сети с названием Incoming, а сама папка находится на системном диске, естественно, выдаётся полный доступ.

В этом случае есть простой способ забить диск до конца:
Создаём файл со случайным именем, пишем в байт по номеру 2 000 000 000 , тем самым за мгновения создаётся файл размером два мегабайта. Повторяем операцию с дргугими файлами, уменьшая размер в случае отсутсвии места на диске. Под конец , когда на диске практически не осталось места, выполняется другая процедура: в цикле создаём файлы нулевой длины, количество файлов должно быть побольше, но 100 000 вполне хватит.

В результате такого действия за несколько минут засоряется диск, а вот в эксплорере нельзя даже выделить эту папку,а уж тем более войти в неё
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / как расширить файл? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]