2016-05-02 3 views
-4

Программа должна проверить, существует ли каталог? А если нет, сообщите пользователю, что такой папки нет.Как проверить, существует ли каталог? прочитайте до конца

Я нашел много примеров, в которых объясняется, как проверить, есть ли файл, но мне нужно знать, есть ли каталог? Все методы

boolean x = context.getExternalFilesDir("/nicknameOfUser/").exists(); 
Toast.makeText(context, "ExternalFilesDir : " + x, Toast.LENGTH_SHORT).show(); 

isAbsolute(), isDirectory(), isFile(), создать новый путь к папке файлов - nicknameOfUser Я не хочу, чтобы они были созданы, мне просто нужно получить есть каталог или нет ... Я надеваю Не нужно создавать новые папки ...

Как это сделать? Я думаю, что это вопрос от обычного, но я не могу понять ...

Когда я запускаю приложение в первый раз - в моем файловом менеджере нет файлов! Но после того, как я проверить .exists(); это создать путь к папке, в которой я нужен чек ... Я НЕ НУЖНО ЭТО

ответ

-1

В конце концов я нашел решение. Я начинаю думать, что это невозможно, но все в порядке

String fileDir = Environment.getExternalStorageDirectory().getAbsoluteFile() + "/nicknameOfUser/"; 
    File file = new File(fileDir); 
    boolean x = file.exists(); 

Этот код работает правильно

5

Чтобы проверить, есть ли каталог, который вы должны использовать два условия

File file = new File(filePath); 
boolean isPresent = file.exists() && file.isDirectory(); 

возвращает true, только если файл существует и является каталогом.

+0

Проверьте этот ответ. –

+0

Вы читали мой quetion до конца ???? Я сказал, что если я использую 'exists()', он должен создать весь путь до последнего файла перед проверкой. Вы поняли мою идею? –

+0

добавленные строки –

2

Вы можете попросить isDirectory() следующим образом:

File f = new File(Environment.getExternalStorageDirectory()+"/nicknameOfUser/"); 
    if(f.isDirectory()) { 
} 
+0

Вы читали мой quetion до конца ???? Я сказал, что если я использую 'exists()', он должен создать весь путь до последнего файла перед проверкой. Вы поняли мою идею? –

+0

добавленные строки в вопросе –

+0

с 'isDirectory()' также создает новый каталог? –

0
File file = new File("your path"); 
    file.exists(); 
+0

Вы читали мой quetion до конца ????Я сказал, что если я использую 'exists()', он должен создать весь путь до последнего файла перед проверкой. Вы поняли мою идею? –

+0

добавленные строки –

0

Но после того, как я проверить .exists(); он создает путь к папке, в которой мне нужна проверка ... Я НЕ НУЖДАЮТСЯ

Проблема не в вызове File.exists(). Это вызов getExternalFilesDir, который создает каталог. Как documentation состояний:

В отличие от Environment.getExternalStoragePublicDirectory(), каталог вернулся сюда будет автоматически создан для Вас.

Смежные вопросы