2016-09-10 4 views
-1

Как я могу получить размер файла после съемки камеры. Я запускаю код следующие результаты: размер файла равен 0. Я думаю, что Camera InputStream пишет. Но как я могу получить реальный размер файла?Android получает размер файла после съемки камеры?

private void takeCamera(){ 
    file = File.createTempFile("tp_", ".jpg", dir); 
    filePathCamera = file.getAbsolutePath(); 
    Uri uri = Uri.fromFile(file); 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 
    startActivityForResult(intent, REQUEST_CODE_CAMERA); 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     switch (requestCode) { 
      case REQUEST_CODE_CAMERA: 
       final File file = new File(filePathCamera); 
       if (!file.exists()) { 
        result.append("not exists\n"); 
        return; 
       } 
       InputStream inputStream = null; 
       try { 
        inputStream = new FileInputStream(filePathCamera); 
        long size = inputStream.available(); 
        result.append("size1:" + size + "\n"); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } finally { 
        try { 
         if (inputStream != null) { 
          inputStream.close(); 
         } 
        } catch (IOException ioe) { 
         ioe.printStackTrace(); 
         // ignore 
        } 
       } 
       break; 
     } 
    } 

} 

ответ

0

В onActivityResult в case REQUEST_CODE_CAMERA: после проверки, если !file.exists() вы можете проверить еще часть file.length, которая даст вам размер файла.

+0

Я попробовал 'available()' и 'length()', но не работал. – gccdchen

+0

file.length() должен работать –

+0

'file.length()' не работает. – gccdchen

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