簡體   English   中英

我想從手機的內部存儲中獲取以MB為單位選擇的文件大小。 但是file.length()總是返回0

[英]I want to get the size of file i select in MBs from internal storage of my phone. but file.length() always returns 0

我可以從手機的內部存儲器中選擇一個pdf類型的文件。 我想以MB為單位獲取文件大小,並根據文件大小對文件選擇進行限制。 但是,盡管已成功選擇了文件,但以下代碼始終返回0。

String uriString = PostFileUri.toString();
File myFile = new File(uriString);
// Get length of file in bytes
long fileSizeInBytes = myFile.length();
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
long fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
long fileSizeInMB = fileSizeInKB / 1024;
Log.i("FileSize", String.valueOf(fileSizeInMB));

可能是0 ,因為您沒有現有文件。 嘗試這個

    File rootStorage = Environment.getExternalStorageDirectory();
    File myFile = new File(rootStorage.toString() + "/download/q1.jpeg");//or whatever  
    long fileSizeInBytes =  myFile.length();
    // Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
    long fileSizeInKB = fileSizeInBytes / 1024;
    // Convert the KB to MegaBytes (1 MB = 1024 KBytes)
    long fileSizeInMB = fileSizeInKB / 1024;
    Log.i("FileSize",String.valueOf(fileSizeInMB));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM