该进程无法访问该文件,因为它正被vb.net中的另一个进程使用

时间:2012-05-14 13:46:49

标签: vb.net

帮助我..我是视觉基础的新手......

当我运行更新时,它会显示错误 该进程无法访问文件'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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

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

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