Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从应用程序WinRT获取本地文件夹_C#_Windows 8_Windows Runtime - Fatal编程技术网

C# 从应用程序WinRT获取本地文件夹

C# 从应用程序WinRT获取本地文件夹,c#,windows-8,windows-runtime,C#,Windows 8,Windows Runtime,我在尝试将文件保存到我正在使用的WinRT应用程序的文件夹时遇到问题。更具体地说:我无法检索该文件夹。我需要保存一些文件,然后从同一文件夹中检索它们,比如说MyFolder,它实际上与资产文件夹在应用程序中处于同一级别。我怎样才能做到这一点呢 到目前为止我试过了 await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("MyFolder") 及 两人似乎都告诉我,这样的文件夹并不存在。现在,

我在尝试将文件保存到我正在使用的WinRT应用程序的文件夹时遇到问题。更具体地说:我无法检索该文件夹。我需要保存一些文件,然后从同一文件夹中检索它们,比如说
MyFolder
,它实际上与
资产
文件夹在应用程序中处于同一级别。我怎样才能做到这一点呢

到目前为止我试过了

await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("MyFolder")

两人似乎都告诉我,这样的文件夹并不存在。现在,我似乎不知道我是否在正确的轨道上,或者我做了什么愚蠢的事情导致了这个例外。我真的不能发布整个代码,因为它实际上是一个对一个更大的方法的调用和其他调用,等等

另外,我想知道(如果这些方法中的任何一种是正确的),如果应用程序得到更新,内容会受到任何方式的影响(更好的说法是丢失)


多谢各位

我认为您需要使用。大概是这样的:

await StorageFolder.GetFolderFromPathAsync("ms-appx:///MyFolder");
此外,您还需要确保文件夹实际包含在输出中。我不太清楚C是如何在C++项目中实现这一点的,它是通过将文件夹/文件的“内容”构建属性设置为true。

会给你应用程序包定义的“文件系统”,所以你会看到常用的资产文件夹,例如通过URI
ms-appx:///Assets
通过InstalledLocation或
ms appx
方案访问的任何内容都是只读的,因为它是由您从Visual Studio部署的项目定义的

允许您访问当前应用程序/用户拥有的“文件系统”(存储在
%AppData%/Local/Packages//LocalState
)。您可以在这里创建任何您想要的结构来管理您的各种角色,并使用
ms-appdata:///local/DirLeve1/DirLeve2/File3
URI以访问您的文件)。该存储通过应用程序的更新来保留,当然,您需要一种策略来更新与较新版本的应用程序交互所需的任何存储数据格式


听起来好像您假设LocalFolder不能包含文件夹层次结构;它可以,因此您可以在LocalFolder引用下有一个Recents子文件夹,并以这种方式处理事情。

请参阅。查看了,查看了示例,但仍然没有找到解决方案。但是我偶然发现了@Jerry Nixon的这篇博文,根据这篇博文,我发布的第一个方法是正确的。我可以获取资产文件夹,但无法检索任何其他文件夹…感谢您的回答,我也遇到了此表单,但我在错误的名称空间中搜索了该方法。。。最后,我决定只使用ApplicationData.Current.LocalFolder。我不想直接使用LocalStorage,而是使用一个自定义文件夹,因为我会有更多的项目,当应用程序启动时,我需要在最近的部分显示它们。如果我想将具有不同角色的文件保存在同一本地文件夹中,这将使事情变得更困难。我想,我可以有一条逃生路线,通过分机过滤它们……谢谢你的回答。我从错误的假设开始。我的问题是,我以为我可以创建一个类似于应用程序中的MyFolder(比如默认设置之类的),然后用GetFolderAsync(“MyFolder”)检索它,但是没有可以获取的文件夹。。。所以我在第一次启动应用程序时创建了一个应用程序,然后在其他时间启动应用程序时,忽略了文件夹已经存在的操作。另外,感谢您提供有关信息的更新。
await StorageFolder.GetFolderFromPathAsync("ms-appx:///MyFolder");