我正在尝试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)