我试图从以下行文件创建一个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
将更有意义。
因为Create
与Read
相矛盾。try New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)
错误消息指出了问题所在:当您创建新文件时,您应该将写入其中,而不是从中读取。当您创建一个新文件时,其中没有任何内容可读。
将第三个参数改为FileAccess.Write
对于FileMode.Create
,您指定要创建位于destinationPath
的文件(如果它已经存在,则重新创建),从而为您提供一个新的空文件。对于新文件,不需要读取任何数据。您应该传递一个包含Write
标志的FileAccess
值。
如果只能读取文件,如何创建文件?您需要指定对该文件也具有写访问权限。MSDN for FileAccess Try:
Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)
好的,对不起,它不是很清楚,但正如提到的,我的意图是阅读文件。正确的做法是:
Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Open, FileAccess.Read)