locked
请教一下关于遍历独立存储中某一个Directory中File的方法 RRS feed

  • 问题

  • 如题,我是新手,求大家帮助我下,该如何做 
    2012年6月20日 8:14

答案

  •       using (IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        if (userStoreForApplication.DirectoryExists(dir))
                        {
                            //  file in current dir
    
                            foreach (String file in userStoreForApplication.GetFileNames(dir + "/*"))
                            {
                                userStoreForApplication.DeleteFile(dir + "/" + file);
                            }
    
                            //  sub-dir
                            foreach (String subdir in userStoreForApplication.GetDirectoryNames(dir + "/*"))
                            {
    
                                DeleteISFDir(dir + "/" + subdir + "/");
    
                            }
    
                            userStoreForApplication.DeleteDirectory(dir);
                        }

    上面的代码是遍历所有文件然后删除...希望对你有帮助
    • 已建议为答案 chenrensong 2012年6月25日 2:18
    • 已标记为答案 Shi Ding 2012年6月28日 17:16
    2012年6月20日 16:31
  •   

    你好,我看了下你代码.你应该是想要遍历独立存储里面所有的图片..然后显示出来是吧

    using (IsolatedStorageFileStream filestream = file.OpenFile(filename, FileMode.Open, FileAccess.ReadWrite))


    这句话改成下面的

       using (IsolatedStorageFileStream filestream = file.OpenFile(App.FolderName + "/"+filename, FileMode.Open, FileAccess.Read))

    还有 你下面的代码,可以在if里面加一个return的..因为没有这个目录就没必要往下运行了!

    if (!file.DirectoryExists(App.FolderName)) { file.CreateDirectory(App.FolderName);

    }


     

     

     


    • 已编辑 chenrensong 2012年6月25日 15:52
    • 已标记为答案 Shi Ding 2012年6月28日 17:17
    2012年6月25日 15:51

全部回复

  •       using (IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        if (userStoreForApplication.DirectoryExists(dir))
                        {
                            //  file in current dir
    
                            foreach (String file in userStoreForApplication.GetFileNames(dir + "/*"))
                            {
                                userStoreForApplication.DeleteFile(dir + "/" + file);
                            }
    
                            //  sub-dir
                            foreach (String subdir in userStoreForApplication.GetDirectoryNames(dir + "/*"))
                            {
    
                                DeleteISFDir(dir + "/" + subdir + "/");
    
                            }
    
                            userStoreForApplication.DeleteDirectory(dir);
                        }

    上面的代码是遍历所有文件然后删除...希望对你有帮助
    • 已建议为答案 chenrensong 2012年6月25日 2:18
    • 已标记为答案 Shi Ding 2012年6月28日 17:16
    2012年6月20日 16:31
  • 非常感谢你
    2012年6月21日 6:50
  • 不客气!
    2012年6月25日 2:18
  • 您好陈老师:

    按照这种方法会报这个错误,查了查资料,好像是不是遍历独立存储中的Diectory有些麻烦?

    这是相关的代码

    IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();

    if (!file.DirectoryExists(App.FolderName)) { file.CreateDirectory(App.FolderName); } if (file.GetFileNames(App.FolderName + "/*") != null) { foreach (string filename in file.GetFileNames(App.FolderName + "/*")) {

    bmp.SetSource(filestream); using (IsolatedStorageFileStream filestream = file.OpenFile(filename, FileMode.Open, FileAccess.ReadWrite)) { bmp.SetSource(filestream); filestream.Flush(); filestream.Close(); }


    在App里面定义了  public const string FolderName = "RageComics";




    2012年6月25日 9:02
  •   

    你好,我看了下你代码.你应该是想要遍历独立存储里面所有的图片..然后显示出来是吧

    using (IsolatedStorageFileStream filestream = file.OpenFile(filename, FileMode.Open, FileAccess.ReadWrite))


    这句话改成下面的

       using (IsolatedStorageFileStream filestream = file.OpenFile(App.FolderName + "/"+filename, FileMode.Open, FileAccess.Read))

    还有 你下面的代码,可以在if里面加一个return的..因为没有这个目录就没必要往下运行了!

    if (!file.DirectoryExists(App.FolderName)) { file.CreateDirectory(App.FolderName);

    }


     

     

     


    • 已编辑 chenrensong 2012年6月25日 15:52
    • 已标记为答案 Shi Ding 2012年6月28日 17:17
    2012年6月25日 15:51