Avatar billede mik28 Seniormester
25. februar 2003 - 17:41 Der er 9 kommentarer og
3 løsninger

Se indhold af direktorat

Jeg har et direktorat jeg uploader til. Er der en smart måde man kan se hvad der ligger i det og samtidig have mulighed for at slette filer. Jeg håber det var præcist nok
Avatar billede mik28 Seniormester
25. februar 2003 - 17:44 #1
Jeg laver det sådan at når man uploader så bliver der lavet en link til filen. Det er også fint nok. Det ville bare være kool hvis filen også blev slette på serveren nå linket gjorde, så man ikke har alt muligt liggende
Avatar billede Slettet bruger
25. februar 2003 - 17:48 #2
Øhm, du mener vel at du har et directory? Det danske ord er bibliotek!

Direktorat er en stilling der besættes af en direktør!
Avatar billede mik28 Seniormester
25. februar 2003 - 18:06 #3
Ja det er det jeg mener
Avatar billede mik28 Seniormester
25. februar 2003 - 18:07 #4
:-)
Avatar billede arne_v Ekspert
25. februar 2003 - 18:41 #5
Du kan liste alle filer i et directory med java.io.File klassen og
list metoden,
Avatar billede arne_v Ekspert
25. februar 2003 - 18:42 #6
Klassen har også en delete metode, som ifølge dokumentation sletter en fil.
Avatar billede magoo20000 Nybegynder
25. februar 2003 - 19:32 #7
Hej! Jeg har en sourcekode, der i en GUI lister alle directories samt filer, interesseret!?
Avatar billede soreno Praktikant
25. februar 2003 - 19:42 #8
Dette stykke kode lister filer og directories som er i c:\

import java.io.*;

public class Main
{
    public static void main(String args[])
    {
        File file = new File("c:\\");
        String path = file.getAbsolutePath();
        String fileList[] = file.list();
        for(int i=0;i<fileList.length;i++)
        {
            File temp = new File(path + "\\" + fileList[i]);
            if(temp.isDirectory())
            {
                System.out.println("[" + fileList[i] + "]");
            }
            else
            {
                System.out.println(fileList[i]);
            }
        }
    }
}
Avatar billede arne_v Ekspert
25. februar 2003 - 19:44 #9
Et lille eksempel (ikke GUI !):

import java.io.*;

public class Dir {
    public static void main(String[] args) {
        // list all files in C:\
        File dir = new File("C:\\");
        String[] dirlist = dir.list();
        for(int i = 0; i < dirlist.length; i++) {
            System.out.println(dirlist[i]);
        }
        // delete C:\z.z
        System.out.println((new File("C:\\z.z")).delete());
    }
}
Avatar billede viht Nybegynder
25. februar 2003 - 20:40 #10
Lige noget jeg har strikket sammen...
du kan dobbeltklikke på biblioteker for at explor'e child noder.
doobeltklik på tilbage for at explor'e parent noden.

// FileTableModel.java:
import javax.swing.table.AbstractTableModel;
import java.io.File;

public class FileTableModel extends AbstractTableModel {
    private String[] columns = { "Filnavn", "Størrelse", "Type" };
    private File root;
    private String goBack = "Tilbage...";
   
    public FileTableModel(File root) {
          this.root = root;
    }

    public int getColumnCount() {
        return columns.length;
    }
   
    public int getRowCount() {
          return (root.listFiles().length+1);
    }

    public String getColumnName(int column) {
        return columns[column];
    }

    public Object getValueAt(int row, int column) {
        if( row == 0 ) {
            if( column == 0 )
                return goBack;
            else return "";
        }
           
        if( column == 0 ) {
            return root.listFiles()[row-1].getName();
        }
        else if( column == 1 ) {
            return new Long(root.listFiles()[row-1].length());
        }
        else if( column == 2 ) {
            if( root.listFiles()[row-1].isDirectory() )
                return "Directory";
            else
                return "File";
        }
        return null;
    }

    public Class getColumnClass(int column) {
        return getValueAt(0, column).getClass();
    }
   
    public boolean isCellEditable(int row, int column) {
        return false;
    }

    public void setValueAt(Object value, int row, int column) {
        switch( column ) {
            case 0: {
                // nada
            } break;
            case 1: {
                // nada
            } break;
            case 2: {
                // nada
            } break;
        }
        fireTableCellUpdated(row, column);
    }
    public File getFile(int row) {
        return root.listFiles()[row];
    }
    public void setRoot(File root) {
        fireTableRowsDeleted(0, root.list().length);
        this.root = root;
    }
}
// TestFrame.java:
import javax.swing.*;
import java.awt.event.*;
import java.io.File;

public class TestFrame extends JFrame {
   
    private JTable table;
    private FileTableModel tableModel;
    private File file;
   
    public TestFrame() {
        super("File Test");
        setSize(400,400);
       
        file = new File("C:/");
        tableModel = new FileTableModel(file);
        table = new JTable(tableModel);
        table.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent event) {
                if( event.getClickCount() == 2 ) {
                    if( table.getSelectedRow() == 0 ) {
                        if( file.getParentFile() != null )
                            explore( file = file.getParentFile() );
                    }
                    else {
                        file = tableModel.getFile(table.getSelectedRow()-1);
                        System.out.println ("File: " +file);
                        if( file.isDirectory() ) {
                            explore(file);
                        }
                    }
                }
            }
        });
       
        setContentPane(new JScrollPane(table));
    }
   
    private void explore(File file) {
        tableModel.setRoot(file);
    }
}

class TestIt {
   
    public static void main(String[] args) {
        new TestFrame().show();
    }
}
Avatar billede viht Nybegynder
25. februar 2003 - 20:50 #11
Du kan så tilføje kode til at redigere i filer.. lige nu har jeg slået al redigering af celler fra. Det bør dog være ligetil.. i hvert fald kan du snildt tilføje renamin af filer.
    public boolean isCellEditable(int row, int column) {
        if( column == 0 && row > 0 )
            return true;
        return false;
    }
    public void setValueAt(Object value, int row, int column) {
        switch( column ) {
            case 0: {
                if( row > 0 ) {
                    // håndter fil renaming...
            } break;
Avatar billede mik28 Seniormester
26. februar 2003 - 09:00 #12
Tak allesammen. Der er noget at arbejde med :-)
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