1

我正在尝试使用此函数从中获取字节以将其发送到数据库

Public Function GetBinary(ByVal Path As String) As Byte()
    Dim fStream As New FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.None)
    Dim fLen As Integer = fStream.Length
    Dim br As New BinaryReader(fStream)
    Dim data As Byte() = br.ReadBytes(fLen)
    Return data
End Function

但是当我使用它时,它给出了一个错误似乎是我选择的文件正在被另一个应用程序打开,,,

错误信息 >

The process cannot access the file 'C:\Users\LOAI\Desktop\2011-11-23 15.47.36.jpg' because it is being used by another process.

如何选择没有此错误的文件并从图像中获取字节

此致

4

1 回答 1

1

问题似乎是您正在指定FileShare.None. 通过这样做,如果任何其他进程也打开了该文件,则该文件无法打开。来自MSDN 文章

拒绝共享当前文件。任何打开文件的请求(通过这个进程或另一个进程)都会失败,直到文件被关闭。

如果您只想以只读方式打开文件,无论是否有任何其他进程同时访问该文件,您可能需要指定FileShare.Read

允许随后打开文件进行读取。如果未指定此标志,则任何打开文件进行读取的请求(由该进程或其他进程)都将失败,直到文件关闭。但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。

于 2013-08-16T20:43:43.850 回答