When I delete a file from gallery, it will delete but a file with the same name of image will be created with 0 byte size! That file will be displayed as a broken image in gallery! Help me please!

```
public void browse(View v)
{
    //This Method is for Browse Button OnClick to get an Image
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,
            "Select Picture"), SELECT_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            File imgFile = new  File(selectedImagePath);
            //Deleting Image
            imgFile.delete();
            //Update Android Gallery to remove Image immediately
            MediaScannerConnection.scanFile(this,
                    new String[] { imgFile.getAbsolutePath() }, null,
                    new MediaScannerConnection.OnScanCompletedListener() {
                        public void onScanCompleted(String path, Uri uri) {
                        }
                    }
                );
        }

    }
}
public String getPath(Uri uri) {
    if( uri == null ) {
        return null;
    }
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    if( cursor != null ){
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }
    return uri.getPath();
}

```

![enter image description here](https://i.stack.imgur.com/chg7O.jpg)

Here is my whole class:
(browse() method will get an image and start() method will compress it and save as a new file and then try to delete the original image where the problem appear:

```
public class Lab extends Activity {

int counter = 0;
long lastModDate;
public static String parent;
public static int deg = 0; 

public static String f_or = "";
public static String f_ta = "";
public static String f_original_Image_dim = "";
private static final int SELECT_PICTURE = 1;
private String selectedImagePath;
Timer timer1;
Bitmap myBitmap;
int currentFormula = 3;
TouchImageView iv1;
TextView l1;
Button btn3;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lab);
    l1 = (TextView) findViewById(R.id.txtl1);
    iv1 = (TouchImageView) findViewById(R.id.iv_selectedpic);

}

public void zard(View v)
{
    l1.setText("F = A");
    currentFormula = 1;
}
public void ghermez(View v)
{
    l1.setText("F = B");
    currentFormula = 2;
}
public void sabz(View v)    
{
    l1.setText("F = C");
    currentFormula = 3;
}

public void next(View v)    
{
    Intent i = new Intent(Lab.this, Resoflab.class);
    startActivity(i);
}
public void browse(View v)
{
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,
            "Select Picture"), SELECT_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            File imgFile = new  File(selectedImagePath);
            lastModDate = imgFile.lastModified();
            try
            {
                if(imgFile.exists()){
                    counter = 0;
                    Resoflab.de = 0;
                    System.gc();
                    BitmapFactory.Options optionss = new BitmapFactory.Options();
                    optionss.inPreferredConfig = Bitmap.Config.RGB_565;
                    optionss.inScaled = false;
                    myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath(),optionss);
                    ExifInterface exif = new ExifInterface(selectedImagePath);
                    int rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
                    int rotationInDegrees = exifToDegrees(rotation);
                    deg = rotationInDegrees;
                    Matrix matrix = new Matrix();
                    if (rotation != 0f) {
                        matrix.preRotate(rotationInDegrees);
                        myBitmap = Bitmap.createBitmap(myBitmap, 0, 0, myBitmap.getWidth(), myBitmap.getHeight(), matrix, true);
                    }
                    f_original_Image_dim = myBitmap.getWidth() + "*" + myBitmap.getHeight();
                    iv1.setImageBitmap(myBitmap);

                    //TouchImageview not displayed image after setImageBitmap so I set setZoom(1) after some miliseconds and its OK now
                    //This is why I used timer
                    timer1 = new Timer();
                    timer1.schedule(new TimerTask() {           
                        @Override
                        public void run() {
                            TimerMethod1();
                        }
                    }, 0, 300);
                    //iv2.setImageBitmap(myBitmap);
                }
            }
            catch(Exception ee)
            {
                Toast.makeText(Lab.this,getResources().getString(R.string.khateyezir)  + "\n\n" +  ee.toString(),Toast.LENGTH_LONG).show();
            }

        }
        else
        {
            //btn3.setVisibility(View.GONE);
        }
    }
}

private void TimerMethod1()
{
    this.runOnUiThread(Timer_Tick1);
}
private Runnable Timer_Tick1 = new Runnable() {
    public void run() {
        try
        {
            counter++;
            iv1.setZoom(1);
            if(counter == 4)
            {
                counter = 0;
                timer1.cancel();
            }
        }
        catch(Exception e)
        {
        }
    }
};

public void start(View v)
{
    try
    {
        if(selectedImagePath.contains("_optimizes_"))
        {
            //Toast that Image had been optimized
            Toast.makeText(Lab.this,getResources().getString(R.string.isoptimized),Toast.LENGTH_LONG).show();
            return;
        }
        String fm = "C";
        if(currentFormula == 2)fm = "B";
        if(currentFormula == 1)fm = "A";
        File file = new File(selectedImagePath);
        if(file.exists() == false)
        {
            Toast.makeText(Lab.this,getResources().getString(R.string.hasdeleted),Toast.LENGTH_LONG).show();
            return;
        }
        parent = file.getParent();

        String name = file.getName();
        String extension = FileUtils.getExtension(name);

        String fileNameWithOutExt = FileUtils.removeExtension(name);
        String Targetname = fileNameWithOutExt + "_optimizes_" + fm + "." + extension;
        String TargetPath = parent + "/" + Targetname;  

        File Tfile = new File(parent, Targetname);
        FileOutputStream outStream = new FileOutputStream(Tfile);

        if(currentFormula == 3)
            myBitmap.compress(Bitmap.CompressFormat.JPEG, 70, outStream);
        else if(currentFormula == 2)
            myBitmap.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
        else myBitmap.compress(Bitmap.CompressFormat.JPEG, 80, outStream);
        outStream.flush();
        outStream.close();
        Tfile.setLastModified(lastModDate);
        //sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Tfile)));
        //SingleMediaScanner sc = new SingleMediaScanner(Lab.this, Tfile);

        String Tfilepath = Tfile.getAbsolutePath();
        String filepath = file.getAbsolutePath();

        //HERE IS MY PROBLEM:
        file.delete();
        MediaScannerConnection.scanFile(this,
                new String[] { Tfilepath, filepath}, null,
                new MediaScannerConnection.OnScanCompletedListener() {
                    public void onScanCompleted(String path, Uri uri) {
                        //now visible in gallery
                    }
                }
            );
        //f_ta = TargetPath;
        //f_original_Image_dim = selectedImagePath;
        //Intent i = new Intent(Lab.this, Resoflab.class);
        //startActivity(i);
    }
    catch(Exception ee)
    {
        Toast.makeText(Lab.this,getResources().getString(R.string.khateyezir)  + "\n\n" +  ee.toString(),Toast.LENGTH_LONG).show();
    }
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    //btn3.setVisibility(View.GONE);
}

public String getPath(Uri uri) {
    if( uri == null ) {
        return null;
    }
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    if( cursor != null ){
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String ret = cursor.getString(column_index);
        cursor.close();
        return ret;
    }
    return uri.getPath();
}
private static int exifToDegrees(int exifOrientation) {        
    if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_90) { return 90; } 
    else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_180) {  return 180; } 
    else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_270) {  return 270; }            
    return 0;    
}

```

}