2016-08-24 4 views
0

, когда я удалить файл код работает и показывает мне тост удаляемого файла также, но не удаление его с SD карты. кода ниже:Ошибка при удалении файла с SD карты

delete_btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v){ 
      fn = baseAppDir.getPath()+ File.separator + folderName + File.separator 
        + folderName + "_" + Integer.toString(imgNo) + ".jpg"; 
      FileName = folderName + "_" + Integer.toString(imgNo) 
        + ".jpg"; 


      if (FileName!=null) 
      { 
        deleteFile(FileName); 
       Toast.makeText(ImageCaptureActivity.this, "Deleted", 
         Toast.LENGTH_LONG).show(); 
       image1.setVisibility(View.GONE); 


       } else { 
       Toast.makeText(ImageCaptureActivity.this, "Not Deleted", 
         Toast.LENGTH_LONG).show(); 
       } 



     }}); 
+0

Ваш тост отображается, потому что 'FileName! = Null'. Никакой другой причины. Перед отображением тоста вы должны проверить возвращаемое значение 'deleteFile()'. – greenapps

+0

'' Not Deleted ''. Это должно быть 'FileName == null'. – greenapps

+0

Как мы должны знать, что происходит, если вы не дадите нам код ошибки? –

ответ

0

Посмотрите на следующее: Delete a file

Вы можете сделать, как, как показано ниже:

try { 
     deleteFile(FileName); 
     Toast.makeText(ImageCaptureActivity.this, "Deleted", Toast.LENGTH_LONG).show(); 
     image1.setVisibility(View.GONE); 
    } catch (NoSuchFileException x) { 
     System.err.format("%s: no such" + " file or directory%n", path); 
    } catch (DirectoryNotEmptyException x) { 
     System.err.format("%s not empty%n", path); 
    } catch (IOException x) { 
     // File permission problems are caught here. 
     System.err.println(x); 
    } 
-1

Попробуйте это может быть его помощью полной тоже ..

File dir = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera"); 
    Log.e(TAG, " get path ..**... " + dir.getPath()); 
    Log.e(TAG, " get Directory ..**... " + dir.isDirectory()); 
    Log.e(TAG, " get Name ..**... " + dir.getName()); 
    Log.e(TAG, " get strign ..**... " + dir.list()); 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     Log.e(TAG, " children .... ... " + children.length); 
     for (int i = 0; i < children.length; i++) { 
      Log.e(TAG, "Delete old Image ..."); 
      new File(dir, children[i]).delete(); 
     } 
    } 

это код для удаления нескольких изображений из SD карты.

-1

заменить

if (FileName!=null) { 
    deleteFile(FileName); 
    Toast.makeText(ImageCaptureActivity.this, "Deleted", 
        Toast.LENGTH_LONG).show(); 
    image1.setVisibility(View.GONE); 
} else { 
    Toast.makeText(ImageCaptureActivity.this, "Not Deleted", 
        Toast.LENGTH_LONG).show(); 
} 

с

File file = new File(FileName); 
if (file.delete()){ 
     Toast.makeText(ImageCaptureActivity.this, "Deleted", 
         Toast.LENGTH_LONG).show(); 
     image1.setVisibility(View.GONE); 
} else { 
     Toast.makeText(ImageCaptureActivity.this, "Not Deleted", 
         Toast.LENGTH_LONG).show(); 

}

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