Вход в систему J2ME

Вам нужен PHP для этого, взгляните на http://php.net/manual/en/function.readdir.php

Из документации PHP:

    $handle = opendir('/path/to/files')

    /* This is the correct way to loop over the directory. */
    while (false !== ($entry = readdir($handle))) {
        //Do something with $entry
    }


    closedir($handle);

Более простой способ сделать это - использовать glob () :

foreach(glob('path/to/file/*.mp3') as $entry)
  //Do something with $entry

Он также отфильтровывает файлы, не относящиеся к mp3

17
задан Asaf R 23 September 2008 в 12:21
поделиться

7 ответов

Если Вы используете предварительную обработку и путаницу с Прозащитой, то у Вас может быть простой класс входа.

public class Log {
  public static void debug(final String message) {
    //#if !release.build
    System.out.println(message);
    //#endif
  }
}

Или делают вход, где когда-либо Вы должны. Теперь, если release.build свойство будет иметь значение true, то этот код будет прокомментирован, который приведет к пустому методу. Прозащита удалит все использования пустого метода - В действительности, сборка конечных версий будет иметь все сообщения отладки удаленными.

Редактирование:

Взгляды об этом на уровне библиотеки (я работаю над отображающейся библиотекой J2ME) я, вероятно, нашел лучшее решение.

public class Log {
  private static boolean showDebug;

  public static void debug(final String message) {
    if (showDebug) {
      System.out.println(message);
    }
  }

  public static void setShowDebug(final boolean show) {
    showDebug = show;
  }
}

Этот способ, которым разработчик конца может включить уровни журнала в библиотеке, которой он интересуется. Если ничто не будет включено, весь код входа будет удален в путанице конечного продукта. Сладкий :)

/JaanusSiim

12
ответ дан 30 November 2019 в 11:18
поделиться

MicroLog уверен ставка. Это - небольшая библиотека входа для Java ME (J2ME) как Log4j. Это имеет поддержку входа к консоли, файлу, RecordStore, Холсту, Форме, Bluetooth, последовательный порт (Bluetooth, IR, USB), Сокет (incl SSL), UDP, Системный журнал, MMS, SMS, электронная почта или к Amazon S3.

http://sourceforge.net/projects/microlog/

19
ответ дан 30 November 2019 в 11:18
поделиться

Можно использовать-assumenosideaffects в прозащите для завершенного удаления класса входа:

-assumenosideeffects public class logger.Logger {*;}

Вместо того, чтобы иметь необходимость предварительно обработать.

7
ответ дан 30 November 2019 в 11:18
поделиться

Series60 и телефон UIQ, которым изменил виртуальную машину Sun сам Symbian, имеют перенаправление Стандартного вывода.

Не только может, Вы получить System.out, но и Throwable.printStackTrace () также работаете.

На ранних гарнитурах, необходимо было бы записать приложение C++, которое сцепляется в стандартный серверный процесс библиотеки. Symbian произвел приложение Редиректора, которое могло получить стандартный вывод VM к консоли или файлу.

На более новых гарнитурах, "redirect://" протокол GCF был представлен, который мог считать стандартный вывод VM в байт Java [] или Строковый объект (Вы захотите выполнить в этом отдельный MIDlet), и приложение Редиректора было переписано в Java.

На новейшем J9 VM, используемом в 3-м Пакете функций Выпуска Series60 2 гарнитуры (и позже), Вы, возможно, должны попробовать "redirect://тест" вместо этого.

3
ответ дан 30 November 2019 в 11:18
поделиться

Я привык MIDPLogger для некоторого допустимого уровня в производственном приложении, хотя я нашел, что это имеет больше использования после интеграции в приложение, а не как другой Midlet в комплекте или так дальше. Я также нашел MicroLog, но не привык его ни для какой большой детали.

1
ответ дан 30 November 2019 в 11:18
поделиться

Я записал оптимизатор байт-кода, и из-за формата файлов класса можно указать на кодирование UTF имени класса & функция, которая позволяет Вам производить журналы с MyClass.someFunc () (можно обработать подпись, если Вы хотите получить типы), который позволяет Вам делать что-то как C, разрабатывает отладку с помощью СТРОКА & макросы ФАЙЛА .

0
ответ дан 30 November 2019 в 11:18
поделиться

Используя условную компиляцию регистратора класс не решает проблему завершенного удаления регистрирующихся операторов, потому что Вы довольно часто зарегистрируете больше, чем простая строка. Вы будете искать значения переменных и затем собирать их в строки, например: WhateverLog.log ("Загруженный "+ someclass.size () +" foos").

Теперь, если Вы только не учитываете тело WhateverLog.log (как показано в принятом решении), Вы все еще оставите много внутри ненужного кода, включая Конкатенацию строк (и таким образом создание StringBuffer). Вот почему необходимо использовать инструмент обработки сообщения кода байта как прозащита (уже упомянутый).-assumenosideeffects прозащиты позволит его оптимизатору удалять не только регистрирующиеся операторы, но также и весь код, результаты которого только использовались бы регистрирующимся вызовом.

0
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: