2015-05-18 7 views
1

Я не опытный разработчик Java/Android, и я пытаюсь проверить, существует ли файл в Dropbox с использованием Dropbox API для Android.Проверьте, существует ли файл в Dropbox с помощью API Dropbox API

Мне не удается найти какой-либо метод в API, чтобы проверить это. Единственный способ, которым я нашел, - это использовать try ... catch и поймать DropboxServerException, что, на мой взгляд, очень уродливо.

Есть ли более хороший способ, например if (file.exists), чтобы проверить, существует ли файл?

Спасибо!

+0

Не могли бы вы поделиться кодом, который вы пробовали? Кроме того, 'try-catch' просто предназначен для обработки ошибок, поэтому в случае сбоя кода вы можете корректно обрабатывать' exception'. Обычно вы используете 'try-catch' в блоках, которые могут выйти из строя (например, подключения к Интернету, чтение/запись файлов и т. Д.). –

ответ

0

Вызов metadata и поиск исключения с ответом 404, вероятно, лучший способ проверить существование одного файла в Dropbox.

В зависимости от того, что вы пытаетесь сделать, то, вероятно, лучше всего подходит:

  1. Если вы перечисляя все файлы в любом случае (например, с помощью дельта), то нет необходимости спрашивать сервер ли файл существует, потому что вы можете отслеживать себя.
  2. Если вы пытаетесь прочитать файл, попробуйте его прочитать (и обработайте исключение, если оно не существует).

Обратите внимание, что этот вид (псевдо-) код всегда глючит:

if (file.exists()) { 
    file.read(); 
} 

Что произойдет, если файл будет удален между моментом, когда вы проверяете его существования, и когда вы пытаетесь прочитать его? При попытке прочитать файл вы получите 404 и исключение. Таким образом, вам понадобится код, который обрабатывает это ... что означает, что первая проверка существования файла ничего не делает для вас. Вы также можете пропустить его (и соответствующий туда-обратно на сервер).

+0

Закончено с помощью try ... catch ... Все равно не нравится, но я думаю, что это способ java ... –

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