1

帮帮我..我是Visual Basic的新手....

当我运行更新时,它显示错误进程无法访问文件'C:\Documents and Settings\Macky\My Documents\Visual Studio 2008\Projects\Marcelo 2.2.3\Marcelo\bin\Debug\Students\MIC953867 .jpg',因为它正被另一个进程使用。

我的代码是这个

Public Sub copingfile()
    If inFileName = Nothing Then
        studpic.Image = Nothing
    Else
        outFileName = inFileName
        pos = inFileName.LastIndexOf(".")
        If (pos > 0) Then
            outFileName = outFileName.Substring(0, pos)
        End If
        outFileName += ".jpg"
        str = Application.StartupPath & "\Students\"
        saveJPEGFile.FileName = str & StudID.Text & ".jpg" '& outFileName
        fil1.Copy(inFileName, saveJPEGFile.FileName, True) 'the error shows here...
        outFileName = saveJPEGFile.FileName()
    End If

End Sub

我可以用图片保存新的学生信息..但是在更新图片时这些代码不起作用......

4

2 回答 2

1
 fil1.Copy(inFileName, saveJPEGFile.FileName, True)

您正在尝试覆盖已打开或正在使用的文件。如果文件在查看器/编辑器中打开,则无法复制。要么你手动打开它,要么通过代码打开它,它仍然“附加”到正在运行的东西上。

如果它没有在窗口中打开,请尝试停止您的代码并手动删除该文件。如果可以的话,很明显,当您到达出错的行时,代码中的某些内容仍在使用它。您需要弄清楚该文件仍在使用的位置(在某处打开流?在 VS 中打开,本身?),因为它似乎不在您提供的代码中。

于 2012-05-14T15:29:48.623 回答
0

您将需要显示更多代码,您使用的变量不在代码清单中。另外,您不会显示最初保存图像的代码。

但这是我的猜测……您确定在第一次保存文件时关闭了文件吗?您通常不能复制到或从打开的文件中复制。

(文件可以作为共享打开,但我不认为你这样做)。

如果有机会,请发布更多代码。

于 2012-05-14T14:18:49.447 回答