[英]Why am I getting IOException and SocketException while writing to NetworkStream?
[英]Why am I getting an IsolatedStorageException thrown the second time I am writing to the same file?
在单元测试中,我正在使用以下代码打开流并对其进行写入:
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
stream = m_store.OpenFile(filename, FileMode.Create);
...
stream.Flush();
stream.Close();
stream.Dispose();
store.Dispose()
第一次成功,但是第二次失败,并显示以下日志输出:其他信息:在IsolatedStorageFileStream上不允许进行该操作。
FileMode.Create枚举常量定义为:
因此看来这是正确的常数。
我已经在stackoverflow上找到了一些类似的问题,例如打开文件时是否抛出了IsolatedStorageFileStream异常?
但他们没有帮助。 正如在网上某个地方所建议的(现在找不到链接),我尝试首先删除该文件(如果存在),这与枚举注释相反,如下所示,但没有帮助:
if (store.FileExists(filename))
{
store.DeleteFile(filename);
}
问题:我缺少什么?
谢谢!
首先,您应该真正使用using
语句,而不是显式调用Close
或Dispose
否则,如果有异常,您将不会关闭流。
其次,我怀疑问题是您还没有处置商店本身。 尝试这个:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = store.OpenFile(filename, FileMode.Create))
{
...
}
您将对Iso存储的引用放在本地变量存储中,但是稍后使用member(?)变量m_store创建流。
这只是这个问题的错字,还是您正在执行的实际代码?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.