06. november 2003 - 18:17Der er
11 kommentarer og 1 løsning
Antal filer i mappe, deres størrelse m.m
Jeg skal løse en opgave:
"Lav et program FileInfo.java, der tager stien til en mappe som opstartsparameter, så man f.eks kan køre programmet med java FileInfo c\:oop\opgaver. Herefter skal du lave følgende:
a. Tæl og udskriv hvor mange filer der er i den angivne mappe (undermapper skal ikke tælles med)"
Nu undrer jeg mig over hvorfor jeg får
[Ljava.io.File;@3e86d0 IO
som svar. Den underlige konstruktion med de to stier skal findes i min manglende kreativitet mht opgavens formulering...
import java.util.*; import java.io.*;
public class FileInfo { String filNavn;
public FileInfo(String fileName) { this.filNavn = fileName; } public static void main (String args[]) { FileInfo fil = new FileInfo("E:/java/sampledir/sampledir/legeplads/IO/");
File fil2 = new File("E:/java/sampledir/sampledir/legeplads/IO/");
Det gør det ikke...jeg får en ArrayIndexOutOfBoundsException hvis jeg kører den fra Sun's Forte, og en NoClassDefFoundError når jeg kører det fra en CMD-promt.
Jeg er meget forundret over at jeg ikke kan få list() til at virke...alle de andre metoder, jeg har prøvet, såsom isDirectory(), isFile() getName(), length() etc virker....hvorfor så ikke lige list?
Well, det her br jo ikke handle om hvorvidt jeg kan finde ud af køre noget fra en kommandopromt (for det kan jeg sikkert ikke, selvom dit eksempel lige har givet mig en ny classdef...etc.)
Jeg er en ret umulig bruger af eksperten...jeg håber altid på at der er nogen, der kan løse mit problem på den måde jeg selv har angrebet det, eller forklare mig hvorfor min metode er forkert...så lærer jeg noget undervejs.
...kan du forklare mig hvad jeg har lavet af fejl, siden list() ikke virker?
jeg kan da godt lave det om så det følger dit eksempel som du har grebet det an .. men din opgave siger at du skal tage en mappe som opstarts parameter .. og det gøre du igennem String[] args arrayet ... så vil det først parameter være args[0]
hvis du hardcoder det så giver FileInfo fil = new FileInfo("E:/java/sampledir/sampledir/legeplads/IO/"); jo ikke meget mening da File fil2 = new File("E:/java/sampledir/sampledir/legeplads/IO/"); klarer det fint ...
Hmmm...jeg sidder allerede fast igen...jeg kan ikke få list.length til at virke...og som jeg ser det laver du et array af strenge...problemet er at jeg senere skal tælle størrelsen af hver enkelt fil, og så lægge dem sammen (ikke noget stort problem). Jeg skal også kunne lægge et filter på, men dét er heller ikke noget stort problem...jeg har bare været i samme hjørne før (et array med navnene på filerne, ikke filerne selv), og dér gik der kludder i det hele.
fejlen er sikkert at du ikke har sagt at file.lenght er en long
Synes godt om
Ny brugerNybegynder
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.