2013-03-21 39 views
1

您好,我有一个简单的问题,我怎么能找到这已经已经保存在独立存储的文件的路径路电话

using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(App.filePath, FileMode.Create, store)) 
      { 

       byte[] buffer = new byte[1024]; 
       while (e.Result.Read(buffer, 0, buffer.Length) > 0) 
       { 
        stream.Write(buffer, 0, buffer.Length); 
       } 
       stream.Close(); 

      } 

现在我会读这个文件 我需要这个路径使用它作为方法的参数

Epub epub =new Epub([file path]) 

任何帮助将不胜感激

回答

0

如果文件是在IsolatedStorage你要么把自己存在或者它是由系统创建的存储设置。

如果你把它放在那里,你以前一定有过这个路径。你只需要跟踪你正在使用的文件名(和路径)。

您不应该尝试直接访问设置文件。

+0

我怎么能得到的路径我把文件放在一个孤立的存储目录 – hamza437

+0

@ hamza437我不明白你怎么不知道你保存文件时使用的文件的名称,或者我怎么会知道... –

+0

不,不,我用这个名字,但它没有工作 – hamza437

0

试试这个

using (var AppStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
string[] filenames=AppStorage.getFileNames(); 
//choose the filename you want or 
//enumerate directories and read file names in each directory 
string[] directories=AppStorage.getDirectories(); 
} 

对于每一个你要添加的文件路径高达该目录就像在任何Windows文件浏览目录。

希望它有帮助。请进一步查询。

0

如果您是将文件放置在独立存储中的文件,则无需获取文件的路径。关于如何正确读取和写入文件到应用isostore的整个指南可用here,这应该是你的出发点。

整个阅读程序限于此:

using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("myFile.txt", FileMode.Open, FileAccess.Read)) 
{ 
    using (StreamReader reader = new StreamReader(fileStream)) 
    { 
     Console.WriteLine("Reading contents:"); 
     Console.WriteLine(reader.ReadToEnd()); 
    } 
} 

哪里myIsolatedStorage等于IsolatedStorageFile.GetUserStoreForApplication()(akak本地应用程序存储盒)。

不需要Reflection,就像你在评论中展示的一样。可以是相对于文件夹,当您尝试阅读时,如/MyFolder/myFile.txt这样的东西也可以工作,因为该文件夹存在。

你的问题是这样的 - 推动isostore中的相对路径为Epub类,它可能不直接从isostore读取,而是使用完整路径。 Windows Phone操作系统的本质是,它不会让没有适当权限的第三方应用程序通过完整路径引用直接访问内容。所以你需要找出将二进制内容传递给类而不是路径的方法。

+0

非常感谢你我会尝试 – hamza437