Выяснить, сколько файлов находится в папке, а затем записать это число в ListView в Android

1

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

private void fileFinder() {
    int x = new File(<"C:/Users/Mike Home/Desktop/test">).listFiles().length;
//      int x = 12;

//      for (int i = 0 ; i < x ; i++){
//          files[i] = Integer.toString(i);
//      }

    files[0] = Integer.toString(x);
}

Может быть, это моя строка?

    String[] files = new String[]{

};

Должен ли я рассказать, сколько строк сделать?

Однако, если я пытаюсь получить определенное имя файла, он работает, поэтому я знаю, что моя папка работает.

    File hello = new File ("C:/Users/Mike Home/Desktop/test/mike.txt");
    files[0]=hello.getName();
  • 0
    Ваш код не имеет никакого смысла. На устройстве Android нет файла «C: / Users / Mike home / Desktop / test». Вы пытаетесь прочитать жесткий диск вашей системы разработки из приложения Android? Это не сработает.
  • 0
    <"C: / Users / Mike Home / Desktop / test"> для вашей информации Android основан на Linux, а не на Windows ..
Показать ещё 3 комментария
Теги:

3 ответа

1
Лучший ответ

Вы не можете получить доступ к файловой системе хост-системы, на которой запущен эмулятор. Вы также не можете напрямую подключиться к файловой системе Windows с устройства. Возможно, есть приложение, которое общается с серверным приложением, работающим в Windows, что позволяет это. Вам придется настроить что-то подобное, если доступ к диску C: это то, что вы хотите сделать.

  • 0
    Просто больше работы, чем я думал. Я надеялся, что смогу использовать диск c: как быструю папку для проверки своих функций. У меня есть еще немного шагов, чтобы пройти, прежде чем я смогу добраться до этого.
0

Вам нужно полное решение? Если это так, я думаю, эта статья может помочь вам: https://stackoverflow.com/questions/4895104/file-browser-in-android

В вашем конкретном фрагменте кода, я думаю, вы просто не должны использовать дескриптор тома DOS. Попробуйте android.os.Environment.getExternalStorageDirectory().

  • 0
    Вау это выглядит в глубину. Я должен проверить это завтра. Спасибо за это.
  • 0
    @ Sparky - Это не сработает. getExternalStorageDirectory() возвращает объект File, указывающий на SDCard или аналогичное запоминающее устройство (если оно есть) на устройстве. Это верно и для эмулятора; он просто не позволяет напрямую взаимодействовать с файловой системой хост-системы, в которой работает эмулятор.
0

Эта строка: int n = new File("C: /Users/Mike Home/Desktop/test").listFiles().length;

достаточно. Он просто находит количество файлов в вашей папке. Это. Теперь покажите этот номер, где хотите. В любом случае ваш вызов Integer.toString(x) кажется неуместным. Примитивы в java переводятся в строку автоматически.

  • 0
    Я получаю силу близко.
  • 2
    @AlexR - Последняя часть «Примитивы в Java автоматически переводятся в строку» неверна. Например, вы не можете сделать это: String x = 3; , Они только «переводятся» на строки в выражениях, таких как "n=" + 3 , но компилятор делает это, превращая его в вызов StringBuilder.append (int).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню