2 votes

Suppression de fichiers sur la carte SD ?

J'ai essayé de supprimer des fichiers sur la carte SD en utilisant le code suivant, mais cela ne fonctionne pas. Voici le menu contextuel montrant l'option de suppression, mais quand j'appuie dessus, rien ne se passe, d'ailleurs, "pass" est un répertoire créé sur sdcard par mon application :

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();

        }  

// la classe de liste

 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);
        }

1voto

Agarwal Shankar Points 14558

Utilisez le code ci-dessous pour supprimer tous les fichiers et le répertoire de 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());
    }

1voto

Agarwal Shankar Points 14558

Utilisez cette LIEN pour créer un menu contextuel personnalisé et placer votre fichier de menus dans le dossier res/menu.

ou essayez de remplacer le code suivant

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

avec

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X