Intereting Posts
Android WiFi Direct WIFI_P2P_PEERS_CHANGED_ACTION не получил Обеспечивает ли Scala хорошую производительность на Android? (Июнь 2011 г.) Когда я удалю свое приложение, удалим ли мою папку, созданную через мое приложение? Как получить потоковое видео MJPG от android IPWebcam с помощью opencv Какой класс следует использовать для даты в Android? Ориентация экрана с ориентацией экрана с вкладками в панели действий Android Studio 1.5.1 Дублирующие файлы, скопированные в APK META-INF / NOTICE.txt commons-codec-1.9.jar …? Как создать дамп Java Thread в Android? Как обрабатывать изменения ориентации экрана при открытии диалога? Android – как чувствительность датчика влияет на время работы от батареи Не удалось выполнить синхронизацию проекта. Базовая функциональность (например, редактирование, отладка) не будет работать должным образом в android studio 1.0.1 Лучший способ объединить аудиофайлы в Android Вызов приложений Google Map из приложения для Android, чтобы получить направление вращения Макет прокрутки Android (wrap_content, максимальный размер) Android mediaplyer seekTo внутри onPrepared

Как узнать размер файла перед его загрузкой?

Мне нужно загрузить файл, и я использую этот код , который в основном представляет собой AsyncTask , предназначенный для обновления индикатора выполнения. Но, так как я не знаю, в каком размере файла мне нужно использовать индикатор выполнения spinner. Итак, как я могу получить размер файла, прежде чем загружать его, чтобы я мог использовать нормальный индикатор выполнения?

Solutions Collecting From Web of "Как узнать размер файла перед его загрузкой?"

Вы можете получить заголовок с именем Content-Length из объекта HTTP Response, который вы получите, это даст вам длину файла. Вы должны заметить, что некоторые серверы не возвращают эту информацию, и единственный способ узнать фактический размер – это прочитать все из ответа.

Пример:

 URL url = new URL("http://server.com/file.mp3"); URLConnection urlConnection = url.openConnection(); urlConnection.connect(); int file_size = urlConnection.getContentLength(); 

Вы обычно можете использовать getContentLength , но лучше всего получить длину самостоятельно (поскольку она может обойти максимальное значение целого).

Просто проанализируйте значение заголовка содержимого. Лучше разобрать его так долго.

пример:

 final URL uri=new URL(...); URLConnection ucon; try { ucon=uri.openConnection(); ucon.connect(); final String contentLengthStr=ucon.getHeaderField("content-length"); //... } catch(final IOException e1) { } 

Обратите внимание, что я могу быть любой строкой, поэтому используйте try catch, а если это -1, пустой или null, это означает, что вы не можете знать размер файла, так как сервер не разрешает его.