Кажется, я не прав. Я никогда не использовал.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();
Вы не можете получить доступ к файловой системе хост-системы, на которой запущен эмулятор. Вы также не можете напрямую подключиться к файловой системе Windows с устройства. Возможно, есть приложение, которое общается с серверным приложением, работающим в Windows, что позволяет это. Вам придется настроить что-то подобное, если доступ к диску C: это то, что вы хотите сделать.
Вам нужно полное решение? Если это так, я думаю, эта статья может помочь вам: https://stackoverflow.com/questions/4895104/file-browser-in-android
В вашем конкретном фрагменте кода, я думаю, вы просто не должны использовать дескриптор тома DOS. Попробуйте android.os.Environment.getExternalStorageDirectory().
getExternalStorageDirectory()
возвращает объект File, указывающий на SDCard или аналогичное запоминающее устройство (если оно есть) на устройстве. Это верно и для эмулятора; он просто не позволяет напрямую взаимодействовать с файловой системой хост-системы, в которой работает эмулятор.
Эта строка: int n = new File("C: /Users/Mike Home/Desktop/test").listFiles().length;
достаточно. Он просто находит количество файлов в вашей папке. Это. Теперь покажите этот номер, где хотите. В любом случае ваш вызов Integer.toString(x)
кажется неуместным. Примитивы в java переводятся в строку автоматически.
String x = 3;
, Они только «переводятся» на строки в выражениях, таких как "n=" + 3
, но компилятор делает это, превращая его в вызов StringBuilder.append (int).