2011-06-13 117 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 

问候

相关问题