整容说文库 > 程序代码 > 教育资讯

Android删除一个空文件夹删不掉

来源:学生作业帮助网 编辑:整容说文库 时间:2020/12/03 11:30:03 程序代码
Android删除一个空文件夹删不掉程序代码
public class PackAdmin extends Activity {
private Button button;
private ListView listView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.packadmin);
        button=(Button)findViewById(R.id.pack_return);
button.setOnClickListener(myClickListener);
button=(Button)findViewById(R.id.pack_xz);
button.setOnClickListener(myClickListeners);
//--------------
listView = (ListView)findViewById(R.id.listView);
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
File sdcardDir =Environment.getExternalStorageDirectory();
   File[] files = new File(sdcardDir.getPath()+"/mappack").listFiles(); 
   int i=0;
   for (File file : files) { 
     if (file.getName().toString().endsWith("pack")) { 

      HashMap<String, Object> map = new HashMap<String, Object>();  
      map.put("itemimage", R.drawable.ic_launcher); 
     map.put("ItemTitle", "编号:"+(i+1));  
     map.put("ItemText", "标签");  
     listItem.add(map);  
     i++;
       }
     } 
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,/
 
                new String[] {"itemimage", "ItemTitle", "ItemText"},   
                new int[] {R.id.itemimage, R.id.ItemTitle,R.id.ItemContent}
            );  
        listView.setAdapter(listItemAdapter);
        listView.setOnItemClickListener(new OnItemClickListener() {  
            @Override  
           public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
                 long arg3) {  
     Intent intent = new Intent();
     intent.setClass(PackAdmin.this,Moreinfo.class);
     intent.putExtra("num", arg2+1);
          startActivity(intent);
            
          }  
        });  
        listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {  
            @Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
                menu.setHeaderTitle("更多操作");     
                menu.add(0, 0, 0, "加载");  
                menu.add(0, 1, 0, "删除");
            } 
       });   
        
        }
    
    private OnClickListener myClickListener = new View.OnClickListener(){
@Override
public void onClick(View v) {
PackAdmin.this.finish();
}};
private OnClickListener myClickListeners = new View.OnClickListener(){
@Override
public void onClick(View v) {
try{
     ConnSQL dbhelper=new ConnSQL(getApplicationContext());
         SQLiteDatabase db=dbhelper.getReadableDatabase();
         String sql ="DROP TABLE map";
         db.execSQL(sql);
         String sqls = "CREATE TABLE map (id INTEGER primary key autoincrement, lont BIGINT, lonb BIGINT, latl BIGINT, latr BIGINT, miss int, info text);";
         db.execSQL(sqls);
         Toast.makeText(PackAdmin.this, "重建成功", Toast.LENGTH_LONG).show();
     } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "重建失败",
                    Toast.LENGTH_LONG).show();
}
}};

@Override
    public boolean onContextItemSelected(MenuItem item){
  AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
       int j=0,i = menuInfo.position;
       String path = null;
   File sdcardDir =Environment.getExternalStorageDirectory();
    File[] files = new File(sdcardDir.getPath()+"/mappack").listFiles(); 
   for (File file : files) { 
     if (file.getName().toString().endsWith("dir")) { 
      if(j==i){
     path=file.getPath()+"/pack.xml";
     break;
      }
      j++;
     }
    }  
        switch (item.getItemId()) {
        case 0:
         ConnSQL dbhelper=new ConnSQL(getApplicationContext());
         SQLiteDatabase db=dbhelper.getReadableDatabase();
         String sql = "SELECT * FROM whats";
         Cursor cursor=db.rawQuery(sql, null);
         if(!cursor.moveToFirst()){
          try {
     Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "加载成功",
                         Toast.LENGTH_LONG).show();
     } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "加载失败",
                         Toast.LENGTH_LONG).show();
     Log.i("look", e.toString());
     }

         }else{
          Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "已经加载",
                    Toast.LENGTH_LONG).show();
         
         }
         //加载
         break;
        case 1:
         File file = new File(path);
     del.DeleteFile(file);
//就是这里啊  ·················各种方法都试过
/*==================================================
另一个类的删除代码,贴在这里··一个空文件夹有权限,删不掉呢···
public class del {
 public static void DeleteFile(File file){
        if(file.isFile()){
            file.delete();
            return;
        }
        if(file.isDirectory()){
            File[] childFile = file.listFiles();
            if(childFile == null || childFile.length == 0){
                file.delete();
                return;
            }
            for(File f : childFile){
                DeleteFile(f);
            }
            file.delete();
        }
    }
}
=============================================*/
         Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "删除成功",
                    Toast.LENGTH_LONG).show();
         break;
        default:
          return super.onContextItemSelected(item);
        }
  return true;
}
}
用自己写的一个应用来删除手机里的文件夹?这个。。好像就连市面上的一些应用卸载的时候也只会删除文件夹里的东西然后留下一个空文件夹而已。。这方面不是很熟,持续关注看有没有进展。。
先看你的路径对不对,再看有没有权限
我用过的一个函数:
public static void delete(File file) {
if (file.isFile()) {
file.delete();
return;
}
if (file.isDirectory()) {
File[] childFiles = file.listFiles();
if (childFiles == null || childFiles.length == 0) {
file.delete();
return;
}
for (int i = 0; i < childFiles.length; i++) {
delete(childFiles[i]);
}
file.delete();
}
}
文件夹是谁创建的,系统的吗?
系统文件夹删不掉,权限,路径, 断点看下有没有进入 file.delete();  这行
程序代码