不允许操作上IsolatedStorageFileStream错误(Operation not pe

2019-09-16 15:03发布

它提供了operation not permitted on IsolatedStorageFileStream错误,当我尝试将文件的内容保存在FILESTREAM FS。

var appStorage = IsolatedStorageFile.GetUserStoreForApplication();
string[] fileList = appStorage.GetFileNames();

foreach (string fileName in fileList)
    {
       using (var file = appStorage.OpenFile(fileName, FileMode.Open))
       {
           if (fileName != "__ApplicationSettings")
           {
               var fs = new IsolatedStorageFileStream(fileName, FileMode.Open, FileAccess.Read, appStorage);
               string abc = fs.ToString();
               meTextBlock.Text = abc;
               //MemoryStream ms = appStorage.OpenFile(fileName, FileMode.Open, FileAccess.Read);

               clientUpload.UploadAsync(SkyDriveFolderId, fileName, fs);
          }
     }
}

Answer 1:

你为什么要添加内using (var file = appStorage.OpenFile(fileName, FileMode.Open))

在我看来,问题是,你打开一个流中读取该文件,然后打开另一个,无需关闭前一个!

如果删除线(似乎没有在那里做什么),它应该工作的罚款。

哦,还有fs.ToString()只会让你的类型名称,而不是文件内容; 读取文件,使用StreamReaderfs



Answer 2:

此错误时的分离的存储文件由一个流(或阅读器或其他人)打开,并且,正在被另一个对象访问而第一物流(或阅读器,要不然)尚未放弃该文件持续发生。 通过您的代码在你访问独立存储文件的所有地方去仔细,并确保您关闭每个文件别的东西正在访问它。 佩德罗喇嘛是正确的这种特殊情况下,我只是想提供一些一般性的反馈。 如果谷歌搜索的问题和答案“操作不IsolatedStorageFileStream误差允许的”,你会看到趋势。 错误信息可能是更多的描述虽然。



Answer 3:

试试这个办法

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (IsolatedStorageFile.IsEnabled)
                    {
                        if (isf.FileExists(localFileName))
                        {
                            using (var isfs = new IsolatedStorageFileStream(localFileName, FileMode.Open, isf))
                            {
                                using (var sr = new StreamReader(isfs))
                                {
                                    var data = sr.ReadToEnd();
                                    if (data != null)
                                    {
                                       ...


文章来源: Operation not permitted on IsolatedStorageFileStream error