【发布时间】:2015-07-27 21:22:59
【问题描述】:
我对 WP 8.1(运行时)SD 卡访问感到非常困惑。我正在尝试在 WP 8.1(运行时)SD 卡中创建一个文件夹,但无法这样做。我正在关注MSDN 教程以在 WinRT 中访问 sd 卡。我需要访问 SD 卡才能存储我的应用程序的备份和日志文件夹。通过遵循this 教程,我在模拟器中配置了 sd 卡路径,并使用以下代码访问该路径。
private async Task<string> AsyncExternalStoragePath()
{
// Get the logical root folder for all external storage devices.
Windows.Storage.StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices;
// Get the first child folder, which represents the SD card.
StorageFolder sdCard = (await externalDevices.GetFoldersAsync().AsTask().ConfigureAwait(false)).FirstOrDefault();
}
externalDevices.Path 返回空字符串,而不是返回我配置的路径。我在Capabilities 下启用了RemovableStorage 并添加了FileTypeAssociations。但老实说,这个FileTypeAssociations 让我非常困惑。我看了很多文章,但我还没有完全弄清楚。
基本上我想要两个文件夹和一个文件在我的应用名称文件夹下。
AppnameFolder -> BackupFolder, LogFolder, Infile
每个文件夹下
Backup -> To keep last five backup files (.db)
Log -> To create log files per day basis (.txt)
inifile -> To enable logging
如果我知道如何在 sd 卡中创建自定义文件夹(应用名称文件夹),我会轻松创建子文件夹(备份、日志)。但是现在我被困在获取根路径上。
编辑:按照评论中的建议,通过在异步调用中添加ConfigureAwait(false) 解决了死锁问题,但 sdcard 路径仍然为空,如何获取路径并在那里创建文件夹?
【问题讨论】:
-
您在代码中的某处使用
Task.Result吗? -
是的,在调用函数中我使用的是Task.Result
标签: c# windows-runtime windows-phone-8.1 removable-storage