2011-01-20 2 views
2

Как я могу программно удалить данные или отформатировать всю SD-карту?Как я могу программно форматировать все данные на SD-карте?

+2

Я вроде надеюсь, что это не представляется возможным. Почему приложение должно когда-либо делать это? Что произойдет, если ваше приложение будет храниться на SD-карте? – kcoppock

ответ

0

С помощью класса File вы должны быть в состоянии перечислить все файлы на SDCard и удалить каждый из них один за другим. Вы будете использовать рекурсивную функцию для удаления каталогов. Однако это не очень хорошая идея, и ОС может помешать вам удалить некоторые файлы/папки, используемые системой или другим пользователем.

5

код протирать SDCARD

public void wipingSdcard() { 
     File deleteMatchingFile = new File(Environment 
       .getExternalStorageDirectory().toString()); 
     try { 
      File[] filenames = deleteMatchingFile.listFiles(); 
      if (filenames != null && filenames.length > 0) { 
       for (File tempFile : filenames) { 
        if (tempFile.isDirectory()) { 
         wipeDirectory(tempFile.toString()); 
         tempFile.delete(); 
        } else { 
         tempFile.delete(); 
        } 
       } 
      } else { 
       deleteMatchingFile.delete(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    private void wipeDirectory(String name) { 
     File directoryFile = new File(name); 
     File[] filenames = directoryFile.listFiles(); 
     if (filenames != null && filenames.length > 0) { 
      for (File tempFile : filenames) { 
       if (tempFile.isDirectory()) { 
        wipeDirectory(tempFile.toString()); 
        tempFile.delete(); 
       } else { 
        tempFile.delete(); 
       } 
      } 
     } else { 
      directoryFile.delete(); 
     } 
    } 
+0

Этот кусок кода сделал мой день, отлично работает! Большое спасибо. – Alin

Смежные вопросы