Avatar billede tommer Nybegynder
24. august 2002 - 16:28 Der er 9 kommentarer og
1 løsning

visning af filer

hvordan kan man lave en visning computerens filsystem i f.eks en frame eller lignende ??
Avatar billede jakoba Nybegynder
24. august 2002 - 16:37 #1
hvis du vil have en applet på en webside til at gøre det, så fy. det må du ikke. som gæst på computeren har du ikke adgrang til filsystemet.

hvis det er til en applikation bruger du klassen java.io.File der har metoder til at tilgå filsystemet.
Avatar billede tommer Nybegynder
24. august 2002 - 17:23 #2
jeg har set java.io.file, men mangler stadig, (fordi jeg er et fjols), ideen til hvordan jeg får lavet en visning af filnavnene i en liste eller noget..
kan du ikke gi' et mini eksempel please.....;-)
Avatar billede carstenknudsen Nybegynder
25. august 2002 - 11:53 #3
Her er et eksempel på hvor filsystemet
vises i en JFrame hvor der ligger en
JEditorPane der viser html tekst. Du kan
klikke på hyperlinks og bevæge dig
rundt i filsystemet. Det er let at
tilføje yderligere information om hver
fil, såsom dens læsbarhed og andet.
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;

public class FileSystem implements HyperlinkListener {
    private JFrame frame;
    private JEditorPane pane;
    public FileSystem( String name ) {
    pane = new JEditorPane();
    pane.setEditable( false );
    pane.setContentType( "text/html" );
    pane.setText( createTable( name ) );
    pane.setCaretPosition( 0 );
    pane.addHyperlinkListener( this );
    JScrollPane scrollPane = new JScrollPane( pane );
    frame = new JFrame( "FileSystem" );
    frame.getContentPane().add( scrollPane );
    frame.setSize( 500, 500 );
    frame.show();
    }
    private String createTable( String name ) {
    File dir = new File( name );
    StringBuffer buffer = new StringBuffer();
    String[] files = dir.list();
    List list = Arrays.asList( files );
    Collections.sort( list );
    files = (String[])list.toArray( new String[ 0 ] );
    try {
        buffer.append( "<b>" + dir.getCanonicalPath() + "</b><br>" );
    }
    catch ( IOException ioe ) {
        buffer.append( "<b>" + dir + "</b><br>" );
    }
    String parent = dir.getParent();
    if ( ( parent != null ) && ( parent.length() > 0 ) ) {
        buffer.append( "<a href=\"" + parent + "\">Parent directory</a><br>" );
    }
    buffer.append( "<table border='2' width=400>" );
    buffer.append( "<tr>" );
    buffer.append( "<td><b>File name</b></td><td><b>Size</b></td>" );
    buffer.append( "</tr>" );
    for (int i = 0; i < files.length; i++) {
        File file = new File( dir, files[ i ] );
        if ( file.isDirectory() ) {
        buffer.append( "<tr><td><a href=\"" + file + "\">" + files[i] + "</a></td><td>0</td></tr>" );
        }
        else {
        buffer.append( "<tr><td>" + files[ i ] + "</td><td>" + file.length() + "</td></tr>" );
        }
    }   
    buffer.append( "</table>" );
    return buffer.toString();
    }
    public void hyperlinkUpdate( HyperlinkEvent he ) {
    if ( he.getEventType() == HyperlinkEvent.EventType.ACTIVATED ) {
        pane.setText( createTable( he.getDescription() ) );
        pane.setCaretPosition( 0 );
    }
    }
    public static void main( String[] args ) {
    new FileSystem( args[ 0 ] );
    }
}
Avatar billede tommer Nybegynder
25. august 2002 - 14:28 #4
tak carsten ;-)
programmet kaster dog en indexoutofbounds på min maskine ??
Avatar billede carstenknudsen Nybegynder
25. august 2002 - 14:48 #5
Programmet forventer at du giver
en path som argument:
Kompiler med
javac FileSystem.java
og kør det med
java -cp . FileSystem c:\some\path
eller
java -cp . FileSystem /home/user/some/path
alt efter om du bruger windows eller unix.
Avatar billede tommer Nybegynder
25. august 2002 - 15:42 #6
kannon.. tak carsten ;-)
Avatar billede tommer Nybegynder
26. august 2002 - 10:34 #7
jeg har prøvet c:\ det virker perfekt.
men hvordan får jeg roden på maskinen så alle drev vises ? (kan man det?)
har prøvet med \ uden held..
Avatar billede carstenknudsen Nybegynder
26. august 2002 - 10:44 #8
Nu er jeg ikke windows haj så jeg må gætte.
Måske er et drev et filsystem modsat på
unix hvor / er en del af filsystemet.
Så måske kan man kun se et drev ad gangen?
Avatar billede tommer Nybegynder
26. august 2002 - 10:47 #9
oki jeg leger lidt videre.
tak for en super hjælp ;-)
Avatar billede willi Nybegynder
27. maj 2003 - 22:09 #10
Hvad nu, carsten, hvis jeg vil kompilerer den i UltraEdit?
(Jeg kan godt se sp. er lukket)
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