Avatar billede thums Praktikant
24. februar 2002 - 16:14 Der er 3 kommentarer og
1 løsning

gennemløb af filmappe samt finde filnavne på de givne filer

Jeg skal bruge lidt hjælp til hvordan at jeg gennemløber et directory i Java. Under gennemløbet skal programmet detectere hvilke filnavne der er i directory'et og gemme disse.

da det dybest set er 2 spørgsmål er der lidt ekstra point at hente, i forhold til at det er et typisk API spørgsmål....
Avatar billede cs_henrik Nybegynder
24. februar 2002 - 16:49 #1
Det følgende program har jeg lavet til at indsætte en tekststreng i alle filer i et directory. Alle underdirectories kommer med.

import java.io.*;
import java.util.*;
public class InsertTing
{
   
    public static int space = -1;
   
    public static boolean isJSP(String file)
    {
        String extension = file.substring(file.length() - 3);
        extension = extension.toLowerCase();
        boolean result;
        if (extension.equals("jsp"))
            result = true;
        else
            result = false;       
        return result;
    }

    public static void insert(String path)
    {
        space += 4;
        String stringSpace = "";
        for(int t = 0; t < space; t++)
            stringSpace += " ";
        File filePath = new File(path);
        File[] fileList = filePath.listFiles();
        if (fileList != null)
        {
            for(int i = 0; i < fileList.length; i++)
            {
                if (fileList[i].isDirectory())
                {
                    System.out.println(stringSpace + "Directory: " + fileList[i].getName());
                    insert(fileList[i].getAbsolutePath());
                }
                else
                {
                    if (isJSP(fileList[i].getName()))
                    {
                        System.out.println(stringSpace + "JSP found: " + fileList[i].getName());
                        insertHeader(fileList[i].getAbsolutePath());
                    }
                }   
            }
        }
        space -= 4;
    }
   
    public static void insertHeader(String file)
    {
        try
        {
            File filename = new File(file);
            BufferedReader in = new BufferedReader(new FileReader(file));
            ArrayList a = new ArrayList();
            while (in.ready())
            {
                a.add(in.readLine());
            }
            in.close();
            filename.delete();
           
            PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
            out.println("<%@ include file=\"/include/checkLoginStatusForJsp.jsp\" %>");
            for(int i = 0; i < a.size(); i++)
            {
                out.println(((String)a.get(i)));
               
            }
            out.close();
        }
        catch(IOException e)
        {
            System.err.println(e);
        }
    }
   
    public static void main(String[] args)
    {
       
        if (args.length > 0)
        {
            insert(args[0]);
        }
        else
            System.out.println("Angiv et directory");
    }
}
Avatar billede cs_henrik Nybegynder
24. februar 2002 - 16:55 #2
Måske er det på sin plads at udspecificere lidt af det essentielle:

Lav en fil ud fra en path (som er en String). En File har en metode, der hedder listFiles(), som returnerer et array med alle Files i det directory. Det kan du gennemløbe...

File filePath = new File(path);
File[] fileList = filePath.listFiles();
Avatar billede thums Praktikant
24. februar 2002 - 17:10 #3
Mange tak for det kanon hurtige svar.. uden at have tjekket om det virker synes jeg det ser meget logisk ud.... så jeg acceptere dit svar..

endnu en gang takker.. :)
Avatar billede cs_henrik Nybegynder
24. februar 2002 - 17:13 #4
Hvis du får problemer når du skal bruge det, så bare sig til :-)
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