Oi pessoal, sou novo na aplicação java e estou desenvolvendo trabalho de conclusão de curso,
preciso criar um codigo que lê o nome das pastas e traga na tela.
Ex:
Tenho uma basta biblioteca, dentro dela existe subpastas
casa
carro
moto
mochila
eu quero que ele leia estas pastas e depois tragas na tela, para que o usuario faça uma escolha
e se eu adicionar mas pastas então fara verificação e trara na tela do emulador. alguem teria como me dar uma
ideia de fazer isto?
Montei esta estrutura conforme JSR e não lista as pastas de um diretorio. Por favor alguem poderia me ajudar? agradeço a atenção!
FileConnection fc = (FileConnection) Connector.open(“file:///C:/dados.txt”);
Enumeration e = fc.list();
while (e.hasMoreElements()) {
System.out.println(((String)e.nextElement()));
}
FileConnection fc = (FileConnection) Connector.open(“file:///C:/”);
Desculpa esqueci de tirar, mas mesmo assim não consigo listar as pastas do diretorio. Estou usando o netbeans para realizar estes teste e o weriless toolkit 2.5. Preciso urgente deste codigo funcionando. agradeço atenção.
Posso estar errado, mais estou tendando fazer um teste listando o meu proprio diretorio do PC, por tanto criei este codigo simples para fazer os teste. por favor me ajudem!
display = Display.getDisplay(this);
cmExit = new Command("Sair", Command.EXIT, 1);
cmOk = new Command("Ok", Command.EXIT, 1);
fmMain = new Form("Disciplinas");
fmMain.addCommand(cmExit);
fmMain.addCommand(cmOk);
fmMain.setCommandListener(this);
}
public void ListarDiretorio() {
try {
FileConnection fc = (FileConnection)Connector.open(“file:///C:/NovoDiretorio/”,Connector.READ_WRITE);
if (fc. isDirectory()) {
Enumeration e = fc.list();
fmMain.deleteAll();
fmMain.append(“Arquivos do diretório:\n”);
while (e.hasMoreElements()){
fmMain.append("\n"+((String)e.nextElement()));
System.out.println(“alguma coisa!”);
}
}
}catch( Exception e ){
e.printStackTrace();
}
}
public void startApp(){
display.setCurrent(fmMain);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction (Command c, Displayable s){
if (c == cmExit){
destroyApp(false);
notifyDestroyed();
}
}
Aqui um exemplo para você e para quem precisa acessar arquivos, este exemplo lista as raizes e toda a sua sub-cadeia, tanto de pastas quanto arquivos.
Fiz este arquivo correndo, então se tiver algum erro peço aos trolls que se acalmem.
Só lembrando que o emulador não acessa as pastas do computador, ele tem sua propria "unidade virtual" que fica normalmente:
DefaultColorPhone Windows: documents and settings\j2mewtk\2.5.2\appdb\DefaultColorPhone\filesystem"
DefaultColorPhone Linux ~/j2mewtk/2.5.2/appdb/DefaultColorPhone/filesystem
import java.io.IOException;
import java.util.Enumeration;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class Main extends MIDlet implements CommandListener {
private List form;
private Command cmdsair;
public Main() throws IOException {
cmdsair = new Command("Sair", Command.EXIT, 1);
form = new List("Pastas", List.IMPLICIT);
form.addCommand(cmdsair);
form.setCommandListener(this);
new Thread() {
public void run() {
listarTudo();
}
}.start();
}
private void listarTudo() {
Enumeration en = FileSystemRegistry.listRoots();
while (en.hasMoreElements()) {
try {
listarDiretorio("", (String) en.nextElement());
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void listarDiretorio(String nivel, String caminho) throws IOException {
FileConnection fc = (FileConnection) Connector.open("file:///" + caminho, Connector.READ);
if (fc.isDirectory()) {
String nome = fc.getName();
if (nome.length() == 0) {
nome = caminho;
}
form.append(nivel + nome, null);
Enumeration e = fc.list();
while (e.hasMoreElements()) {
listarDiretorio(nivel + ">", caminho + "/" + e.nextElement());
}
} else {
form.append(nivel + fc.getName(), null);
}
}
public void startApp() {
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void commandAction(Command c, Displayable s) {
if (c == cmdsair) {
destroyApp(false);
}
}
}