Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 23:03, 14 March 2008.

How to list files and folders in Java ME

From Forum Nokia Wiki


This article shows, how to list files and folders in a folder on a mobile device. FileConnection API (JSR-75) has FileConnection.list() method for this purpose. It is also possible to get directory and file sizes by using FileConnection.directorySize() and FileConnection.fileSize() methods.


The full source code for a test MIDlet:

FileListMIDlet.java

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Enumeration;
import javax.microedition.io.file.*;
import javax.microedition.io.*;
import java.io.*;
 
public class FileListMIDlet extends MIDlet implements CommandListener {
    private Form form;
    private Command exitCommand;
    
    public void startApp() {
        form = new Form("C:/ contents");
        exitCommand = new Command("Exit", Command.EXIT, 1);
        form.addCommand(exitCommand);
        form.setCommandListener(this);
        Display.getDisplay(this).setCurrent(form);
        getFileList("file:///c:/");
    }
 
    public void pauseApp() {
    }
 
    public void destroyApp(boolean unconditional) {
    }
    
    protected void getFileList(String path) {
        try {
            FileConnection fc = (FileConnection)Connector.open(path, Connector.READ);
            Enumeration filelist = fc.list("*", true); //also hidden files are shown
            String filename;
            while(filelist.hasMoreElements()) {
                filename = (String) filelist.nextElement();
                fc = (FileConnection)Connector.open(path + filename, Connector.READ);
                if(fc.isDirectory()) {
                    long size = fc.directorySize(false);
                    form.append(filename+" - "+Integer.toString((int)size)+"B\n");
                } else {
                    long size = fc.fileSize();
                    form.append(filename+" - "+Integer.toString((int)size)+"B\n");
                }
            }   
            fc.close();
        }
        catch (IOException ioe) {
            System.out.println("IOException: "+ioe.getMessage());            
        }
        catch (SecurityException se) {
            System.out.println("SecurityException: "+se.getMessage());            
        }
    }
    
    public void commandAction(Command c, Displayable d) {
        if (c == exitCommand) this.notifyDestroyed();
    }    
}
Related Discussions
Thread Thread Starter Forum Replies Last Post
Problem in uninstalling application aamitgupta General Symbian C++ 2 2007-09-01 16:26
Program Works in emulator, not on phone skela Open C 13 2008-01-16 18:10
setting list problem ddhungry Symbian User Interface 0 1970-01-01 02:00
setting list problem ddhungry General Symbian C++ 0 1970-01-01 02:00
missing bld files for animation example japanman General Symbian C++ 3 2003-04-28 13:07
 
Powered by MediaWiki