Avatar billede bustermaniac Nybegynder
16. august 2001 - 16:44 Der er 4 kommentarer og
2 løsninger

Filsystem

Leder efter et program der kan vise et diagram over ens harddisk så man kan se i hvilke mapper der er mange filer i. Hvis dette allerede findes vil jeg gerne vide hvor jeg kan finde det (hvis der allerede findes noget kode der gør noget lignende vil det også være rart). Ellers må jeg vel selv i gang.....

Alle forslag er også velkomne.

BusterManiac
Avatar billede bustermaniac Nybegynder
16. august 2001 - 16:45 #1
Måske lidt utydeligt, men f.eks. vil jeg gerne kunne vise et diagram med mapper af den ene akse og deres % af harddisken på den anden.
Avatar billede rfogh Nybegynder
16. august 2001 - 17:26 #2
De findes! Se fx denne søgning på \"diskmonitor\": http://www.google.com/search?q=diskmonitor
Find en, se om den kan hvad du skal bruge og hent den! :o)
Avatar billede zerohero Nybegynder
16. august 2001 - 17:38 #3
skriv en kode der tæller alle mb sammen på din computer og gemmer det hele i en Tprogressbar. eks:

procedure TForm1.FormCreate(Sender: TObject);
var
  drive : char;
  i, fsize : integer;
begin
i := 1;
for drive := \'A\' to \'Z\' do
  begin
    if getdrivetype(pchar(drive + \':\\\')) = drive_fixed then
    fsize := disksize(i);
    inc(i);
  end;
progressbar1.max := fsize;
end;

nu har du gemt din total størrelse af din HD i en Tprogressbar...
Nu laver du en slags \"Stifinder\". I dette tilfælde nøjes vi med at bruge Tdirectorylistbox og en Tfilelistbox - bare for vise teknikken!
I directorylistbox1 onChange procedure skriver du følgende;

procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var
  f : file of byte;
  size : longint;
  i : integer;
begin
filelistbox1.directory := directorylistbox1.getitempath(directorylistbox1.itemindex);
size := 0;
if filelistbox1.items.count > 0 then
for i := 0 to filelistbox1.items.count-1 do
//læser alle filers størrelse i mappen
  begin
    try
    assignfile(f, filelistbox1.items[i]);
    reset(f);
    size := size+filesize(f);  //læser filen størrelse
    closefile(f);
    progressbar1.position := size;
    except
    //her indsættes eventuelt en fejlmeddelse
    end;
  end;
end;

Sådan kan det gøres. Der findes sikkert andre måder at gribe det an på...

ZeroHero
Avatar billede bustermaniac Nybegynder
16. august 2001 - 19:05 #4
jeg vil lige kigge på din kode og se om jeg kan bruge noget af den, men der er en dog ting som jeg skal ændre. Det skal kunne ses som et diagram/billede, men jeg kan vel lege med canvas.

Avatar billede nca Juniormester
16. august 2001 - 19:14 #5
Der findes allerede et glimrende program til dette formål. Prøv at søge på TreesizePro på sharewaresiderne.
Avatar billede zerohero Nybegynder
16. august 2001 - 19:28 #6
I stedet for Tprogressbar kan du bare bruge:

Tgauge og lav kind om til gkPie...

eller hvis det skal være lidt mere avanceret kan du bruge:

Tgraph

eller hvis det skal være helt \"tovli flot\" *GG* så brug :

Tchartfx eeler Tvtchart

ZeroHero

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester