|
#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
|
|||
|
|||
заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место [/quote]
спасибо кстате )) |
#7
|
|||
|
|||
:d :d :d
Как, все работает?? я тока 1 гиг умучал, на большее нервов не хватило смотреть. |
#8
|
|||
|
|||
да не , просто код посмотрел и ахренел..как все не понятно ))) я ламер в этом . а попробую дома с собой дельфина нету .выходной убил на сие детище ты взял за 5 минут настрочил какую литературу посоветуешь?
|
#9
|
|||
|
|||
Дома не заработало
стрелку сюда завела "fFile:= TFilestream.Create('file.dat',fmOpenWrite);" с ошибкой (( |
#10
|
|||
|
|||
ну, какую ошибку то хоть выдал??? может модуль не подключен нужный?, TFileStream
в classes объявлен... |
#11
|
|||
|
|||
да, и не забудь файл создать, в приведенном мною коде файл не создается
|
#12
|
|||
|
|||
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} 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; end. это весь код что не так ? ошибка project progect1.exe raised exception class efopenerror with message" 'cannot open filefile.dat' |
#13
|
|||
|
|||
Цитата:
|
#14
|
|||
|
|||
файла он не нашел 'file.dat'
да, в этом то и дело.... |
#15
|
|||
|
|||
заработало
|