我正在尝试FileStream
使用以下行从文件创建一个:
Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Create, FileAccess.Read)
当我这样做时,我收到一条错误消息
Combining FileMode: Create with FileAccess: Read is invalid.
谁能帮我这个?
编辑:我正在尝试从文件中读取,而不是创建它。
Read
访问不允许您对文件进行任何修改。创建文件算作修改。您将需要使用Write
或ReadWrite
访问。
编辑:当然,还有第二种情况:
如果您尝试从已存在的文件中读取,请不要使用FileMode.Create
. 相反,使用FileMode.Open
.
FileAccess.Write
如果您正在尝试创建(并可能写入)文件,则使用或可能更有意义FileAccess.ReadWrite
。
随着FileMode.Create
您指定要destinationPath
创建文件(或如果它已经存在则重新创建),为您提供一个新的空文件。有了新文件,就没有要读取的数据了。您应该传递一个FileAccess
包含Write
标志的值。
如果只能读取文件,如何创建文件?您需要指定您还具有对该文件的写入权限。MSDN for FileAccess试试:
Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)
因为Create
与 相矛盾Read
。尝试New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)
错误消息说明了问题所在:当您创建一个新文件时,您应该写入它,而不是从中读取。当您创建一个新文件时,其中没有可读取的内容。
将第三个参数更改为FileAccess.Write
.
好的,抱歉不清楚,但如前所述,我的意图是阅读文件。正确的做法是:
Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Open, FileAccess.Read)