2013-11-21 47 views
3

我的文件夾中的文件我給路徑和列表視圖中顯示,但我想列表文件顯示其大小。我給你的代碼片段代碼由此代碼我得到列表視圖中的所有文件名,但我想列出名單大小列表plz幫助我。如何顯示列表視圖中的文件大小與文件名

String root_sd = Environment.getExternalStorageDirectory().toString(); 
    file = new File(root_sd + "/recycle/") ;  
    File list[] = file.listFiles(); 

    for(int i=0; i< list.length; i++) 
    { 
      myList.add(list[i].getName()); 
    } 

    setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, myList)); 
    setContentView(R.layout.main); 

    mFilePathTextView = (TextView)findViewById(R.id.file_path_text_view); 

     mStartActivityButton = (Button)findViewById(R.id.start_file_picker_button); 
     mStartActivityButton.setOnClickListener(this); 

保護無效onListItemClick(ListView的升,視圖V,INT位置,長ID) { super.onListItemClick(L,V,位置,ID);

final File temp_file = new File(file, myList.get(position)); 

    AlertDialog alertbox = new AlertDialog.Builder(this) 
    .setTitle("File Detail") 
    .setMessage("File Name:"+temp_file) 
    .setPositiveButton("Delete", 
      new DialogInterface.OnClickListener() { 

       // do something when the button is clicked 
       public void onClick(DialogInterface arg0, int arg1) { 
        DeleteRecursive(temp_file); 
        refresh(); 
        //mylist.invalidateViews(); 
        //adapter.notifyDataSetChanged(); 

       } 
      }) 
    .setNegativeButton("Restore", new DialogInterface.OnClickListener() { 

     // do something when the button is clicked 
     public void onClick(DialogInterface arg0, int arg1) { 

      String s5=temp_file.toString(); 
       String z1[]={"Field1","Field2"}; 


       try   
       { 
        String from= temp_file.toString(); 

這裏我的XML文件* * ** * ** * ** * ** * ** * ** * ** * ** * ****

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <ListView 
    android:id="@+id/mylist" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:background="#aa0000" 
    android:drawSelectorOnTop="false" /> 

我想顯示子項PLZ文件大小給我解決什麼樣的變化在我的xml文件和代碼。

回答

9

做這樣

此方法將計算文件的大小

public String readableFileSize(long size) { 
     if (size <= 0) 
      return "0"; 
     final String[] units = new String[] { "B", "KB", "MB", "GB", "TB" }; 
     int digitGroups = (int) (Math.log10(size)/Math.log10(1024)); 
     return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups]; 
    } 

在你的代碼

for(int i=0; i< list.length; i++) 
{ 
       myList.add(list[i].getName() + " " + readableFileSize(list[i].length())); 
} 
+0

你是對的,但我已經在列表視圖上應用單擊事件,所以我想要顯示子項目中的文件大小PLZ給我解決方案什麼改變我的XML文件和代碼,因爲之後,然後單擊其獲取錯誤。 –

+0

沒有得到你想要的東西。我想你想傳遞文件大小到下一個活動? –

+0

不,我不想要我只想要後,然後點擊列表視圖保護無效onListItemClick(列表視圖l,查看v,int位置,長ID)在此ihave獲取錯誤更新我的代碼 –

2

看到這個..

import java.io.File; 

    public class FileSizeExample 
    { 
    public static void main(String[] args) 
     { 
    File file =new File("c:\\java_xml_logo.jpg"); 

    if(file.exists()){ 

     double bytes = file.length(); 
     double kilobytes = (bytes/1024); 
     double megabytes = (kilobytes/1024); 
     double gigabytes = (megabytes/1024); 
     double terabytes = (gigabytes/1024); 
     double petabytes = (terabytes/1024); 
     double exabytes = (petabytes/1024); 
     double zettabytes = (exabytes/1024); 
     double yottabytes = (zettabytes/1024); 

     System.out.println("bytes : " + bytes); 
     System.out.println("kilobytes : " + kilobytes); 
     System.out.println("megabytes : " + megabytes); 
     System.out.println("gigabytes : " + gigabytes); 
     System.out.println("terabytes : " + terabytes); 
     System.out.println("petabytes : " + petabytes); 
     System.out.println("exabytes : " + exabytes); 
     System.out.println("zettabytes : " + zettabytes); 
     System.out.println("yottabytes : " + yottabytes); 
    }else{ 
     System.out.println("File does not exists!"); 
    } 

} 
    } 
+0

我想在子項目中顯示文件大小PLZ給我解決方案什麼改變我的XML文件和代碼。 –

0

這裏,計算字節數的大小

AssetManager manager = getAssets(); 
    InputStream in= null; 
    try { 
     in= manager.open("pic.png"); 
     Bitmap bitmap = BitmapFactory.decodeStream(in); 

     int bt = in.available(); // here is the size in no. of byte 

     ImageView imgView= (ImageView) findViewById(R.id.imageView01); 
     imgView.setImageBitmap(bitmap); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

這似乎並沒有回答這個問題。 –

相關問題