进程无法访问文件...因为它正被另一个进程使用

时间:2017-07-03 19:59:21

标签: c# .net

我正在拿一个文件并做两件事。调整大小并将其放在图片框中,然后再次调整大小并保存。

第一次调整大小操作在将其作为缩略图放入窗口后进展顺利,但是在调整大小后,第二次调整大小操作无法说明它正在使用中。

根据我的理解,我没有关闭文件或流。对此的解决方案是"使用"命令,但无论我把它放在哪里,我都会遇到错误。

首先调整代码大小:

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        string[] droppedfiles = (string[])e.Data.GetData(DataFormats.FileDrop);
        PB_Picture.Image = ScaleImage(Image.FromFile(droppedfiles[0]), 180, 140);
    }

我试过了:

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        using (string[] droppedfiles = (string[])e.Data.GetData(DataFormats.FileDrop));
        PB_Picture.Image = ScaleImage(Image.FromFile(droppedfiles[0]), 180, 140);
    }

但是会遇到一些错误。

Errors

2 个答案:

答案 0 :(得分:0)

在不知道第二次调整大小操作的位置的情况下,我无法确定,但这可以解决您的问题。

<div>

答案 1 :(得分:-1)

using声明不正确:

private void Form1_DragDrop(object sender, DragEventArgs e)
{
    using(string[] droppedfiles = (string[])e.Data.GetData(DataFormats.FileDrop)){
        PB_Picture.Image = ScaleImage(Image.FromFile(droppedfiles[0]), 180, 140);
    }
}