读取已在wp7中打开的文件

时间:2013-01-03 06:07:16

标签: windows-phone-7 isolatedstorage

在我的记录器应用程序中,我需要打开文件进行日志记录。我在应用程序关闭时关闭流。但是,我需要支持读取日志文件的内容。所以当我尝试打开日志文件时遇到IsolatedStorageException- “Isolatestoragefilestream上不允许操作”

这是示例代码:

日志文件创建:

IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();
    file.CreateDirectory("/log");                
    var stream = file.OpenFile("/log/sample.log", 
    System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite,
    System.IO.FileShare.ReadWrite);

日志条目代码:

byte[] buffer = System.Text.Encoding.UTF8.GetBytes("Hello World");
    stream.Write(buffer,0,buffer.Length);
    stream.Flush();

我可能需要阅读内容:

IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();
//here i encounter isolated storage exception
    var stream = file.OpenFile("/log/sample.log", System.IO.FileMode.Open, 
    System.IO.FileAccess.Read,System.IO.FileShare.Read); <br>
    byte [] buffer = new byte[1024];<br>
    stream.Read(buffer, 0, buffer.Length);

我只是试图在readwrite模式下打开一个示例文件并再次以读取模式再次打开它,但我仍然得到同样的错误。在wp7中,我们不能在文件打开时读取文件吗?(我的意思是......在第一次打开时不关闭流&gt;)。

请告诉我任何建议。

2 个答案:

答案 0 :(得分:0)

您需要更改读取操作标志。根据{{​​3}}文章:

  

读取允许随后打开文件进行阅读。

在您的情况下,最好使用ReadWrite模式:

  

ReadWrite 允许随后打开文件进行读写。

答案 1 :(得分:0)

据我说:

在app启动时打开文件读写模式,并使用相同的文件实例读取和写入文件内容。意味着不要单独打开文件进行读写。