2012-04-12 4 views
2

다음 코드를 사용하여 sdcard에서 파일을 삭제하려고했지만 작동하지 않습니다. 여기 삭제할 수있는 옵션을 보여주는 컨텍스트 메뉴,하지만 나는 그것을 누르면 아무것도 "패스"디렉토리 내 응용 프로그램에 의해 SDCARD에 생성된다, 그런데, 변화가 없습니다 :sdcard에서 파일을 삭제 하시겠습니까?

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
      super.onCreateContextMenu(menu, v, menuInfo); 
       menu.setHeaderTitle("Context Menu"); 
       menu.add(0, v.getId(), 0, "delete"); 
       menu.add(0, v.getId(), 0, "wtever"); 
      } 


     @Override 
     public boolean onContextItemSelected(MenuItem item) { 
      if(item.getTitle()=="delete"){function1(item.getItemId());} 
      else if(item.getTitle()=="wtever"){function2(item.getItemId());} 
      else {return false;} 
     return true; 
     } 

     public void function1(int id){ 
      Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show(); 
      File folder = Environment.getExternalStorageDirectory(); 
      String fileName = folder.getPath() + "/pass/hello.pdf"; 

      File myFile = new File(fileName); 
      if(myFile.exists()) 
       myFile.delete(); 

     } 

//리스트 클래스

public class PDFListActivity extends ListActivity { 
      ArrayAdapter<String> adapter; 
      int clickCounter=0; 
      ArrayList<String> listItems=new ArrayList<String>(); 
      private File[] imagelist; 
      String[] pdflist; 


     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.mainlistpdf); 
       File images=new File(Environment.getExternalStorageDirectory(), "pass"); 
       imagelist = images.listFiles(new FilenameFilter(){ 
         public boolean accept(File dir, String name) 
         {  

           return ((name.endsWith(".pdf"))); 
         } 
       }); 

       pdflist = new String[imagelist.length]; 
       for(int i = 0;i<imagelist.length;i++) 
       { 
         pdflist[i] = imagelist[i].getName(); 
       } 
       this.setListAdapter(new ArrayAdapter<String>(this, 
           android.R.layout.simple_list_item_1, pdflist)); 
       ListView list=getListView(); 
       registerForContextMenu(list); 
     } 
+0

으로 아래의 코드

File folder = Environment.getExternalStorageDirectory(); String fileName = folder.getPath() + "/pass/hello.pdf"; 

를 교체 시도는/ –

+0

는 예 그것은이라고합니다. 내가 축하 메시지 "기능 1"이라는 고급 "라는 전화 번호 – AliDeV

답변

1

를 사용하여 모든 파일과 디렉토리를 삭제하려면 다음 코드를 사용하여이 LINK 사용자 정의 컨텍스트 메뉴를 생성하고 메뉴를 배치 res/menu 폴더에있는 파일.

또는 로그인 기능 1이 호출되는지 여부를 확인하거나하지? 가질 수

String fileName = Environment.getExternalStorageDirectory() + "/pass/hello.pdf"; 
+0

마침내 작동하지만 목록을 새로 고쳐야합니다. 파일이 보이지 않습니다. 삭제, 내가 다시 – AliDeV

+0

함수를 호출해야하지만 그것은 삭제되었지만 여전히 메뉴 목록에 표시 되었습니까? –

+0

이면 효과를 적용하려면 목록을 새로 고침해야합니다. –

1

는 sdcard에 ::

public static boolean deleteDirectory(File path) { 
     // TODO Auto-generated method stub 
     if(path.exists()) { 
      File[] files = path.listFiles(); 
      for(int i=0; i<files.length; i++) { 
       if(files[i].isDirectory()) { 
        deleteDirectory(files[i]); 
       } 
       else { 
        files[i].delete(); 
       } 
      } 
     } 
     return(path.delete()); 
    } 
+0

하지만, 특정 파일을 디렉토리를 삭제하고 싶지 않아, 내가 당신이 – AliDeV

+0

누른 다음 위의 코드에서 path.delete() 제거 파일을 의미합니다 디렉토리 –

+0

의 모든 파일을 삭제 하시겠습니까? lol. 아무 남자도 파일을 클릭하지 않습니다. – AliDeV

관련 문제