c# - 尝试删除独立存储中的目录时出现异常

标签 c# silverlight windows-phone-7 isolatedstorage

当我尝试在 Windows Phone 7 的独立存储中删除目录时出现以下异常:

访问独立存储时出错。
没有内在的异常(exception)。

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
    isf.DeleteDirectory(dir.TrimEnd('/'));
}

笔记:
  • 将其放入 try-catch 将隐藏异常,但仍不会删除目录!
  • 在调用它之前,我使用 DeleteFile() 删除了其中的所有文件,因此问题与目录中的现有文件无关。
  • 修剪目录名称是为了确保它是有效的目录名称。

  • 任何的想法?

    谢谢。

    最佳答案

    好的,问题解决了,问题是文件没有被正确删除。我感到困惑的原因是,当您删除无效文件时,IsolatedStorageFile 类不会警告您。这是正确的代码和一些注释:

    public static void DeleteDirectoryRecursive(this IsolatedStorageFile isf, string dir)
    {
        foreach (var file in isf.GetFileNames(dir))
        {
            isf.DeleteFile(dir + file);
        }
    
        foreach (var subdir in isf.GetDirectoryNames(dir))
        {
            isf.DeleteDirectoryRecursive(dir + subdir + "\\");
        }
    
        isf.DeleteDirectory(dir.TrimEnd('\\'));
    }
    

    笔记:
  • 文件路径中的“\”和“/”没有区别
  • 当 DeleteDirectory 时需要 trimEnd() ,否则抛出异常“路径必须是有效的文件名”。
  • GetFileNames() 和 GetDirectoryNames() 只返回名称部分而不是完整路径。因此,为了使用每个结果,您需要将其与目录(在本例中为 DeleteFile())
  • 关于c# - 尝试删除独立存储中的目录时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801766/

    相关文章:

    c# - WPF Canvas.GetLeft() 总是接收 NaN 值

    c# - Outlook App for Office 任务 Pane

    silverlight - 我可以从我现有的 MVVM 代码创建一个不包含 Silverlight 的移动 'view' 吗?

    silverlight - 读取远程 mp3 文件的 ID3 标签?

    windows-phone-7 - 如何在windows phone 7应用程序开发中动态显示图像?

    windows-phone-7 - 用于离线查看的 map 切片缓存

    c# - 文件夹右键菜单(仅文件夹)

    c# - 使用 iTextSharp : empty values 读取 pdf 表单数据

    c# - 如何从 Windows Phone 8.1 Silverlight 中的列表框中删除所选项目

    c# - 运行动画后如何导航到另一个页面