2015-11-06 73 views
-1

我不知道如果这个问题将被标记为无用或类似的东西,但我真的好奇它,所以认为这将是最好的地方问。从无根电话的内部存储器中删除文件

是否无法删除根目录电话的内部存储器中的文件而无需生根?我试过deleteFile(uri.toString()),其中uri是文件路径,在日志文件的正下方添加了日志Log.e(“msg”,“deleted”),但问题在于所有这些文件仍然存在。该怎么办?

更新: 这是我的代码:

public class MainActivity extends Activity { 

    ListView list ; 
    ListAdapter listAdapter; 
    ArrayList<String> listTest; 
    String name; 
    Uri uri; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     list = (ListView)findViewById(R.id.list); 
     listTest = new ArrayList<String>(); 

     Scanner(Environment.getRootDirectory()+"/"); 

     if(listTest.size() != 0) 
      { 
       listAdapter=new ListAdapter(getApplicationContext(),listTest); 
       list.setAdapter(listAdapter); 

       list.setOnItemClickListener(new OnItemClickListener() 
       { 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
       { 

        name = (String) ((TextView) view).getText(); 


        view.setSelected(true); 


        uri = Uri.parse(listTest.get(position).toString()); 
        File fl = new File(uri.toString()); 
        deleteFile(uri.toString()); 
        Log.e("msg", "deleted"); 
        Toast.makeText(getApplicationContext(), name+".apk"+" is deleted from internal storage", Toast.LENGTH_SHORT).show(); 
        /*if(fl.exists()) 
        { 
         fl.delete(); 
         Log.e("msg", "deleted"); 
         Toast.makeText(getApplicationContext(), name+".apk"+" is deleted from internal storage", Toast.LENGTH_SHORT).show(); 
        }*/ 


        list.setSelection(position); 




       }}); 





      } 




    } 


     private void Scanner(String path) { 
      // TODO Auto-generated method stub 
      { 
       try 
       { 
         File fl = new File(path); 
         File[] listOfFiles = fl.listFiles();    

         for (File listOfFile : listOfFiles) 
         { 
          String s = listOfFile.getName(); 

          if(s.endsWith(".apk")) 
          { 


          // store file name in listSoundNames 
          int pos = s.lastIndexOf("."); 
          if (pos > 0) 
          { 
           name = s.substring(0, pos); 

          } 
          listTest.add(name); 

          } 


          ///////////////////////////////// 
          File f = new File(path+s+"/"); 
          if (f.exists() && f.isDirectory()) { 
          Scanner(path+s+"/"); 
          } 
          //////////////////////////////// 


         } 



       } 
      catch (Exception e) { } 
      } 

      } 
} 
+2

您只能删除您的应用创建的文件。如果这是你想要做的,请显示你正在使用的代码。 – Tigger

+0

我想删除一些预先存储在内部存储器中的apk文件。不知道这是不可能的。 – Sri

+0

好奇和学习者在这里downvote结果!哇,好! – Sri

回答

1

这是不可能的,如果无根。您只能删除/ data/data/your_package_name中的文件。

+0

哦。感谢您提供信息。 – Sri

相关问题