拖放后无法删除文件

时间:2017-03-01 14:00:27

标签: c# .net winforms drag-and-drop

我将照片从探索转移到胜利形式。这很好。我移动图片后,我想删除它在文件夹中,但不起作用。我在winform中收到了该文件正在使用的错误。

我尝试过:

File.Delete(files[0])
files = null
img = null
img.Dispose()

但我仍然无法删除或移动文件。

private void frmADManager_DragDrop(object sender, DragEventArgs e)
    {
        try
        {
            int x = PointToClient(new Point(e.X, e.Y)).X;

            int y = PointToClient(new Point(e.X, e.Y)).Y;

            if (x >= pbUser.Location.X && x <= pbUser.Location.X + pbUser.Width && y >= pbUser.Location.Y && y <= pbUser.Location.Y + pbUser.Height)

            {

                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                Image img = Image.FromFile(files[0]);
                if (img.Width == 648)
                { 
                    pbUser.Image = img;
                    SavePicture = true;
                    tsbtnSave.Enabled = true;
                    toolStrip1.Focus();
                    File.Delete(files[0]);
                    files = null;
                    img = null;
                    img.Dispose();                        
                }
                else

1 个答案:

答案 0 :(得分:2)

您尝试在拨打img.Dispose()之前删除图片。在处理img之前,它仍处于“使用中”状态,因此只需更改线条:

if (img.Width == 648)
{ 
    pbUser.Image = img;
    SavePicture = true;
    tsbtnSave.Enabled = true;
    toolStrip1.Focus();
    img.Dispose();//you are disposing the img, no need to null it
    File.Delete(files[0]);
 }