有什么问题?我收到此错误"在IsolatedStorageFileStream上不允许操作"在这一行:
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("folder\\" + fileName, FileMode.Create))
第一次运行正常,但不是第二次。
string nameFile= e.UserState.ToString();
Stream stream = e.Result;
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!myIsolatedStorage.DirectoryExists("folder"))
{
myIsolatedStorage.CreateDirectory("folder");
infoTextBlock.Text = "'folder' created...";
}
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("folder\\" + fileName, FileMode.Create))
{
stream.CopyTo(fileStream);
}
}
回答问题:
例外:
[System.IO.IsolatedStorage.IsolatedStorageException] = {"在IsolatedStorageFileStream上不允许操作。"}
堆栈跟踪:
at System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, IsolatedStorageFile isf)
at System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, IsolatedStorageFile isf)
at NameApp.Backup.client_DownloadImatgesCompleted(Object sender, LiveDownloadCompletedEventArgs e)
at Microsoft.Live.LiveConnectClient.<>c__DisplayClass6.<RaiseDownloadCompletedEvent>b__4()
at Microsoft.Live.SynchronizationContextWrapper.<>c__DisplayClass2.<Post>b__0(Object state)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at System.Delegate.DynamicInvokeOne(Object[] args)
at System.MulticastDelegate.DynamicInvokeImpl(Object[] args)
at System.Delegate.DynamicInvoke(Object[] args)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)
at System.Windows.Threading.Dispatcher.OnInvoke(Object context)
at System.Windows.Hosting.CallbackCookie.Invoke(Object[] args)
at System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object[] args)
at System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)
我把断点放在我正在使用的地方(fileStream),这些是文件名:
第一轮:
文件名:
第二轮:
文件名:
这里崩溃,但变量&#34; NameFile&#34;包含正确的名称:
我已经看到上传文件后问题发生了。我曾经看到,当我尝试打开,删除,覆盖等先前已上传的文件时,我会遇到异常......
我正在使用此代码:
private void UploadFilePictures()
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
this.client.UploadCompleted
+= new EventHandler<LiveOperationCompletedEventArgs>(ISFileImatges_UploadCompleted);
foreach (string fileName in myIsolatedStorage.GetFileNames("folder\\*.jpg"))
{
fileStream = myIsolatedStorage.OpenFile("folder\\" + fileName, FileMode.Open, FileAccess.Read);
this.client.UploadAsync(skyCarpetaImatges_ID, fileName, true, fileStream, null);
}
}
}
private void ISFileImatges_UploadCompleted(object sender, LiveOperationCompletedEventArgs args)
{
fileStream.Close();
fileStream.Dispose()
this.client.UploadCompleted -= new EventHandler<LiveOperationCompletedEventArgs>(ISFileImatges_UploadCompleted);
}
在标记解决方案中看到评论
答案 0 :(得分:3)
试试这个:
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = new IsolatedStorageFileStream("folder\\" + fileName,FileMode.Create,FileAccess.Write,myIsolatedStorage ))
{
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine(data);
writer.Close();
}
stream.Close();
}
}
我希望它有所帮助。