2011-06-13 165 views
1

嗨我正在爲一個應用程序的一部分,我正在寫一個簡單的文件瀏覽器,但我想要做的是,如果該文件以onclick中的.zip結尾我想做別的事情比任何其他的文件,這裏是我的類到目前爲止,感謝您的幫助來自文件資源管理器的Android篩選器文件

public class Installed extends ListActivity { 

private List<String> item = null; 
private List<String> path = null; 
private String root= "/"; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.installed); 
     getDir(root); 
    } 

    private void getDir(String dirPath) 
    { 

    item = new ArrayList<String>(); 
    path = new ArrayList<String>(); 

    File f = new File(dirPath); 
    File[] files = f.listFiles(); 

    if(!dirPath.equals(root)) 
    { 

     item.add(root); 
     path.add(root); 

     item.add("../"); 
     path.add(f.getParent()); 

    } 

    for(int i=0; i < files.length; i++) 
    { 
     File file = files[i]; 
     path.add(file.getPath()); 
     if(file.isDirectory()) 
     item.add(file.getName() + "/"); 
     else 
     item.add(file.getName()); 
    } 

    ArrayAdapter<String> fileList = 
     new ArrayAdapter<String>(this, R.layout.row, item); 
    setListAdapter(fileList); 
    } 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 

    File file = new File(path.get(position)); 

    if (file.isDirectory()) 
    { 
    if(file.canRead()) 
    getDir(path.get(position)); 
    else 
    { 
     Toast.makeText(Installed.this, file.getName() + " can't be read!", Toast.LENGTH_LONG).show(); 
    } 
    } 
    else 
    { 
    if(file.toString().endsWith(".zip")){ 
     Toast.makeText(Installed.this, file.getName() + " is zip", Toast.LENGTH_LONG).show(); 
    }else{ 
     Toast.makeText(Installed.this, file.getName() + " isn't zip", Toast.LENGTH_LONG).show(); 
    } 
    } 
} 
} 
+0

想通了沒有甚至十秒鐘後我沒有做的toString我只是做其中的endsWith出錯,我感到很抱歉編輯操作 – GFlam 2011-06-13 17:26:07

+0

是的,但謝謝你的答案會發布我自己的答案,但我會給你檢查謝謝你的幫助無論如何:) – GFlam 2011-06-15 03:39:22

回答

2

只是檢查文件名與ZIP擴展結束,如果你能依靠的文件名,否則你可以檢查神奇的代碼。對於壓縮文件,它應該是「PK」(爲0x50 4B)

//--snip 
else 
    { 
    if (file.getName().toUpperCase().endsWith(".ZIP") ){ 
     //Do something with the zip file 
    } 
    } 
//--snip 

問候

相關問題