0

我正在尝试FileStream使用以下行从文件创建一个:

Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Create, FileAccess.Read)

当我这样做时,我收到一条错误消息

Combining FileMode: Create with FileAccess: Read is invalid.

谁能帮我这个?

编辑:我正在尝试从文件中读取,而不是创建它。

4

7 回答 7

3

Read访问不允许您对文件进行任何修改。创建文件算作修改。您将需要使用WriteReadWrite访问。

编辑:当然,还有第二种情况:

如果您尝试从已存在的文件中读取,请不要使用FileMode.Create. 相反,使用FileMode.Open.

于 2013-01-14T21:10:29.387 回答
2

FileAccess.Write如果您正在尝试创建(并可能写入)文件,则使用或可能更有意义FileAccess.ReadWrite

于 2013-01-14T21:10:09.967 回答
1

随着FileMode.Create您指定要destinationPath创建文件(或如果它已经存在则重新创建),为您提供一个新的空文件。有了新文件,就没有要读取的数据了。您应该传递一个FileAccess包含Write标志的值。

于 2013-01-14T21:10:41.180 回答
1

如果只能读取文件,如何创建文件?您需要指定您还具有对该文件的写入权限。MSDN for FileAccess试试:

Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)
于 2013-01-14T21:12:17.407 回答
1

因为Create与 相矛盾Read。尝试New FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite)

于 2013-01-14T21:10:19.563 回答
1

错误消息说明了问题所在:当您创建一个新文件时,您应该写入它,而不是从中读取。当您创建一个新文件时,其中没有可读取的内容。

将第三个参数更改为FileAccess.Write.

于 2013-01-14T21:10:38.330 回答
0

好的,抱歉不清楚,但如前所述,我的意图是阅读文件。正确的做法是:

Dim fStream As FileStream = New FileStream(destinationPath, FileMode.Open, FileAccess.Read)
于 2013-01-14T21:15:12.653 回答