从孤立的存储窗口电话的路径

时间:2013-03-21 13:43:42

标签: windows-phone-7 isolatedstorage

嗨,我有一个简单的问题,我如何找到已经保存在隔离存储中的文件的路径

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]) 

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

如果文件在IsolatedStorage中,您可以自己放置文件,也可以使用系统创建的文件存储设置。

如果你把它放在那里,你必须先在某个时候有路径。您只需跟踪您正在使用的文件名(和路径)。

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

答案 1 :(得分: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文件浏览中一样。

希望它有所帮助。发表您的进一步询问。

答案 2 :(得分:0)

如果您将文件放在隔离存储中,则无需获取文件的路径。有关如何正确读取和写入应用程序isosore的文件的完整指南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您当地的应用存储空间)。

无需反思,正如您在评论中所表明的那样。当您尝试阅读时,它可以相对于文件夹,因此/MyFolder/myFile.txt之类的内容也会起作用,因为该文件夹存在。

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