C# 打开包进行写入时出现奇怪错误
首先,我使用的是.NET4 我试图将一些文件写入包,但在执行此操作时遇到了一些奇怪的情况:C# 打开包进行写入时出现奇怪错误,c#,.net,package,C#,.net,Package,首先,我使用的是.NET4 我试图将一些文件写入包,但在执行此操作时遇到了一些奇怪的情况: using (var package = Package.Open(filename, FileMode.OpenOrCreate, FileAccess.Write)) { // do something with package } 包指的是 奇怪的是,Package.Open方法抛出一个异常,该异常表示: 无法使用FileMode.Create、FileMode.CreateNew、Fil
using (var package = Package.Open(filename, FileMode.OpenOrCreate, FileAccess.Write))
{
// do something with package
}
包
指的是
奇怪的是,Package.Open方法抛出一个异常,该异常表示:
无法使用FileMode.Create、FileMode.CreateNew、FileMode.Truncate、FileMode.Append(当访问权限为FileAccess.Read时)获取流
我在Microsoft Connect上发现了2009年的旧错误报告:
但这没用
有人有主意了吗?我想我发现了问题所在 当我更改为代码以执行此操作时:
using (var stream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write))
{
using (var package = Package.Open(stream))
{
// do something with package
}
}
我收到了一条相当不错的错误消息:
无法打开包,因为FileMode或FileAccess值对流无效
我认为这是“真正的”错误信息,有人,在某个地方,在做本地化的时候把它和那个荒谬的信息混在一起了
然后我更改了这个的代码:
// no FileAccess parameter
using (var package = Package.Open(file, FileMode.OpenOrCreate))
{
// do something with package
}
而且它不再崩溃,而且似乎工作正常。似乎您在这里没有适当的权限。@Akram有趣的是,一个0字节的文件最终在
文件名
处创建。如果您使用FileAccess.Read,它能工作吗?@Akram Nope,同样的错误。但考虑到我正试图写入文件,我怀疑这是否有效……我知道这听起来很愚蠢。尝试FileAccess。这次创建..真奇怪。不过,这是一个好问题。+1去掉文件访问参数似乎也能解决这个问题。很高兴我找到了你的帖子!我已经准备好了一个漫长的晚上来做这个。。。