Файловое соединение + j2me - PullRequest
       30

Файловое соединение + j2me

2 голосов
/ 18 февраля 2011

Я хочу сделать приложение, в котором я могу получить все изображения, будь то в телефоне или во внешней памяти.Я хочу импортировать все эти изображения в моем приложении.Как это может быть возможно?Я узнал, что это возможно через подключение к файлу.Но не знаю точно.

Ответы [ 2 ]

6 голосов
/ 18 февраля 2011
  1. Получить все корни файловой системы, используя FileSystemRegistry.listRoots()
  2. Открывать соединение с каждым корнем по очереди, используя FileConnection fconn = (FileConnection)Connector.open(root)
  3. Для просмотра списка папок используйте fconn.list().
  4. Для каждой записи в списке, если она заканчивается расширением изображения (file.getName().endsWith(".png") и т. Д.), То это изображение.
  5. Если запись является папкой (file.isDirectory() возвращает true), тогда используйте fconn.setFileConnection(folder) для перехода в этот каталог /
  6. Сделайте то же самое рекурсивно для всех папок во всех корнях.
2 голосов
/ 21 февраля 2011

Вот фрагмент кода, который я когда-то использовал для своего приложения. Это более или менее делает то же самое в фанкиброс шагов.

 protected void showFiles() {
        if (path == null) {
            Enumeration e = FileSystemRegistry.listRoots();
            path = DATAHEAD; //DATAHEAD = file:///
            setTitle(path);
            while (e.hasMoreElements()) {
                String root = (String) e.nextElement();
                append(root, null);
            }
            myForm.getDisplay().setCurrent(this);
        } else {
                        //this if-else just sets the title of the Listing Form
                        if (selectedItem != null) {
                            setTitle(path + selectedItem);
                        }
                        else {
                            setTitle(path);
                        }
            try {
// works when users opens a directory, creates a connection to that directory
                if (selectedItem != null) {
                    fileConncetion = (FileConnection) Connector.open(path + selectedItem, Connector.READ);
                } else // works when presses 'Back' to go one level above/up
                {
                    fileConncetion = (FileConnection) Connector.open(path, Connector.READ);
                }
// Check if the selected item is a directory
                if (fileConncetion.isDirectory()) {
                    if (selectedItem != null) {
                        path = path + selectedItem;
                        selectedItem = null;
                    }
                    //gathers the directory elements
                    Enumeration files = fileConncetion.list();
                    while (files.hasMoreElements()) {
                        String file = (String) files.nextElement();
                        append(file, null);
                    }
//
                    myForm.getDisplay().setCurrent(this);
                    try {
                        if (fileConncetion != null) {
                            fileConncetion.close();
                            fileConncetion = null;
                        }
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }//if (fileConncetion.isDirectory())
                else {
                    System.out.println(path);
                    //if it gets a file then calls the publishToServer() method
                    myForm.publishToServer();

                }
...