![]() |
|
|
#1
|
|||
|
|||
![]() Приветствую может кто подскажет как написать растущий файл до размера свободного места на жестком диске че то не получается ...
|
#2
|
|||
|
|||
![]() А что конкретно не получается то, поподробней можно?
хм... если файловая система FAT32 то и не получится больше 4Гб файл создать. ![]() |
#3
|
|||
|
|||
![]() Да проблема в криворучии но совета не у кого спросить
короче так включаем таймер узнаем рамер жесткого диска именно его свободного места создаем файл растущий на скажем 1024 кб сравниваем размеры места с файлом если место меньше чем файл то конец кода щя нету с собой дома лежит но в общем программа останавливается когда места на винте еще до хрена голову сломал уже может есть готовое решение ? |
#4
|
|||
|
|||
![]() ну например так: (без таймера но работает)
Код:
const Size = 8192; procedure TForm1.Button1Click(Sender: TObject); var fFile: TFileStream; Free,Total,TotFree: int64; begin fFile:= TFilestream.Create('file.dat',fmOpenWrite); repeat If fFile.Write(Total,Size) <> Size then ShowMessage('Не все записалось'); GetDiskFreeSpaceEx('C:\',Free,Total,@TotFree); until Free<= 8192;//пока на диске не останется 8килобайт fFile.Free; end; заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место ![]() |
#5
|
|||
|
|||
![]() Блин как ты это ? как я далек до твоего уровня.. не скажешь где обучался ?
|
#6
|
|||
|
|||
![]() :d :d :d
Как, все работает?? я тока 1 гиг умучал, на большее нервов не хватило смотреть. |
#7
|
|||
|
|||
![]() заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место
![]() спасибо кстате )) |
#8
|
|||
|
|||
![]() Дома не заработало
стрелку сюда завела "fFile:= TFilestream.Create('file.dat',fmOpenWrite);" с ошибкой (( |
#9
|
|||
|
|||
![]() ну, какую ошибку то хоть выдал??? может модуль не подключен нужный?, TFileStream
в classes объявлен... |