![]() |
|
|
|
|
#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 и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место
[/quote]спасибо кстате )) |
|
#8
|
|||
|
|||
|
Дома не заработало
стрелку сюда завела "fFile:= TFilestream.Create('file.dat',fmOpenWrite);" с ошибкой (( |
|
#9
|
|||
|
|||
|
ну, какую ошибку то хоть выдал??? может модуль не подключен нужный?, TFileStream
в classes объявлен... |