0

分離ストレージの作成されたディレクトリに書き込まれたファイルを読み込もうとしています..ファイルは実際に作成されています. しかし、それが読み取られているときに、「IsolatedStorageFileStreamで許可されていない操作」という例外があります...

using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    if (!storage.DirectoryExists("CourseworkDirectory"))
        storage.CreateDirectory("CourseworkDirectory");

    XElement Coursework = new XElement(CourseworkID);
    XDocument  _doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), Coursework);
    IsolatedStorageFileStream location = new IsolatedStorageFileStream("CourseworkDirectory\\"+CourseworkID, System.IO.FileMode.Create, storage);
    StreamWriter file = new StreamWriter(location);  

    _doc.Save(file);//saving the XML document as the file
    file.Close();
    file.Dispose();//disposing the file
    location.Dispose();
}

ファイルを読み込んでいます....

using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    string searchpath = System.IO.Path.Combine("CourseworkDirectory", "*.*");

    foreach (string filename in storage.GetFileNames(searchpath))
    {
        XElement _xml;
        IsolatedStorageFileStream location = new IsolatedStorageFileStream(filename, System.IO.FileMode.Open, storage);

実際にはファイル名を取得していますが、この時点で例外があります。

4

2 に答える 2

0

これを試してください、それは私のために働きます:

        String sb;

        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (myIsolatedStorage.FileExists(fileName))
            {
                StreamReader reader = new StreamReader(new IsolatedStorageFileStream(fileName, FileMode.Open, myIsolatedStorage));

                sb = reader.ReadToEnd();

                reader.Close();
            }

            if(!String.IsNullOrEmpty(sb))
            {
                 MessageBox.Show(sb);
            }
        }

これが機能しない場合は、ファイルが存在しない可能性があります。

于 2012-08-24T03:58:20.467 に答える
0

これを行うことでこれを達成できます---

using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
   IsolatedStorageFileStream fileStream = storage.OpenFile(app.getSettingsPath,FileMode.Open, FileAccess.Read);
   using (StreamReader reader = new StreamReader(fileStream ))
   {
      string line;
      while((line = reader.ReadLine()) != null)
      {
         // do your work here
      }
   }
}
于 2012-08-23T18:05:42.757 に答える