Windows Phone 8中不允许使用隔离存储异常操作

时间:2014-07-15 08:06:58

标签: c# windows-phone-7 windows-phone-8 isolatedstorage componentone

我开发了一个系统来发送带附件的邮件(zip文件)。其中一个附件是一个文件夹,我在发送之前将其转换为Zip文件。邮件发送完美。但是,每当我尝试再次访问隔离存储或者对隔离存储中的文件进行任何修改时,我使用Zips发送邮件后,我会在IsolatedStorageFileStream上获得操作不允许。

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();

C1ZipFile zip = new C1.C1Zip.C1ZipFile();

if (isf.DirectoryExists("SFA_DB") == true)
{
    var fs = isf.CreateFile("\\SFA_DB.zip");

    zip.Create(fs);

    foreach (string fileName in isf.GetFileNames("SFA_DB\\*.*"))
        zip.Entries.Add(isf.OpenFile("SFA_DB\\" + fileName, FileMode.Open), fileName);
    fs.Close();
    fs.Dispose();
    zip.Close();
}

isf.Dispose();
isf = null;

我缺少哪些代码,或者我必须采取哪些不同的操作?

提前致谢

1 个答案:

答案 0 :(得分:0)

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();

C1ZipFile zip = new C1.C1Zip.C1ZipFile();

    if (isf.DirectoryExists("SFA_DB") == true)
        using (IsolatedStorageFileStream fileStream = isf.CreateFile("\\SFA_DB.zip"))
        {
              zip.Create(fileStream);

              foreach (string fileName in isf.GetFileNames("SFA_DB\\*.*"))
                       zip.Entries.Add(fileStream, fileName);
              fileStream.Dispose();
              fileStream.Close();
              zip.Close();
        }

    isf.Dispose();
    isf = null;