gpt4 book ai didi

c# - 打开包进行写入时出现奇怪的错误

转载 作者:太空狗 更新时间:2023-10-29 20:25:32 28 4
gpt4 key购买 nike

首先,我使用的是 .NET 4。

我正在尝试将一些文件写入包,但在执行此操作时遇到了一些奇怪的事情:

using (var package = Package.Open(filename, FileMode.OpenOrCreate, FileAccess.Write))
{
// do something with package
}

PackageSystem.IO.Packaging.Package .

奇怪的是 Package.Open 方法会抛出一个异常:

Cannot get stream with FileMode.Create, FileMode.CreateNew, FileMode.Truncate, FileMode.Append when access is FileAccess.Read.

我在 Microsoft Connect 上发现了一份 2009 年的旧错误报告: http://connect.microsoft.com/VisualStudio/feedback/details/392318/argumentexception-text-is-wrong

但这并没有帮助。

那么,有人有想法吗?

最佳答案

我想我找到了问题。

当我更改为执行此操作的代码时:

using (var stream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write))
{
using (var package = Package.Open(stream))
{
// do something with package
}
}

我收到了一条相当不错的错误消息:

Cannot open package because FileMode or FileAccess value is not valid for the stream.

我认为这是“真正的”错误信息,有人在某处简单地将其与进行本地化时的无意义信息混在一起。

然后我为此更改了代码:

// no FileAccess parameter
using (var package = Package.Open(file, FileMode.OpenOrCreate))
{
// do something with package
}

而且它不再崩溃,并且似乎可以正常工作。

关于c# - 打开包进行写入时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889860/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com