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

任何帮助将不胜感激

4

3 回答 3

0

如果您是将文件放入隔离存储的人,则无需获取文件的路径。有关如何正确读取和写入文件到应用程序 isostore 的完整指南可在此处获得,这应该是您的起点。

整个阅读程序仅限于此:

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()(又名您的本地应用程序存储盒)。

正如您在评论中所展示的,不需要反射。可以相对于文件夹,当您尝试阅读时,/MyFolder/myFile.txt如果文件夹存在,类似的东西也可以工作。

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

于 2013-03-22T16:12:29.830 回答
0

如果文件在 IsolatedStorage 中,您要么自己放在那里,要么是系统创建的用于存储设置的文件。

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

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

于 2013-03-21T14:33:27.217 回答
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 文件浏览中一样。

希望它有帮助。发布您的进一步查询。

于 2013-03-22T14:59:23.743 回答