Java fra kommandpromt part 2
Jeg har 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 C:/oop/fileinfo). Herefter skal du lave følgende:
- tæl og udskriv hvor mange filer der er i den angivne mappe (undermapper skal ikke tælles med) - programmet kan f.eks udskrive "C:/oop/opgaver indeholder 9 filer"
- undersøg hvad hver enkelt af filerne i mappen fylder (size) og udskriv som aflsutning hvad alle filerne i mappen fylder (brug metoden file.length()). Kan nu udskrive f.eks: (tekst slettet) "
- udvid programmet, så det tager en (frivillig) parameter kaldet '-type' som begrænser hvilke filer, der skal tages med , idet man kan angive hvilken endelse de skal have, f.eks 'java FileSizes C:/oop/opgaver -type .class"
Well, jeg har denne klasse:
import java.util.*;
import java.io.*;
public class FileInfo
{
static String filNavn;
public FileInfo(String fileName)
{
this.filNavn = fileName;
}
public static void main (String args[])
{
long totalstr = 0, totalfilt = 0;
FileInfo omvej = new FileInfo("E:/java/sampledir/sampledir/legeplads/IO/");
File fil = new File(filNavn);
File [] list = fil.listFiles();
System.out.println("Der er " + list.length + " filer i " + fil);
for (int i = 0; i < list.length; i++)
{
totalstr = totalstr + list[i].length();
}
System.out.println("...og de fylder " + totalstr + " bytes.");
File [] filtreret = fil.listFiles( new FilenameFilter( )
{
public boolean accept(File dir, String name)
{
return name.endsWith( ".class" );
}
});
for( int n = 0; n < filtreret.length; n++ )
{
totalfilt = totalfilt + filtreret[n].length();
}
System.out.println("Der er " + filtreret.length + " filer med .class, og de fylder ialt " + totalfilt + " bytes.");
}
}
...og den laver sådan set noget af arbejdet. Problemerne er dette :
a) jeg kan ikke finde ud af at starte den fra en kommandoprompt - ligegyldigt hvor meget jeg skriver cd C:. feks, ender jeg altid i E:/Ducuments and settings/schroeder eller tilsvarende, og jeg skal over i E:/Java/sampledir etc.
b: Jeg er ret megt i tvivl om hvilke ændringer der skal foretages for at kalde mit program med et argument. I en tidligere udgave af dette spørgsmål lærte jeg at 'args' i public static void main (String args[]) er ét argument, der kan tages i main-metoden...men hvad hvis der skal tages to, og hvilke ændringer skal jeg så lave?
Et langt og rodet spørgsmål fra en forvirret studerende...
"
