模拟器中配置的 SD 卡路径为空 - Windows Phone 8.1(运行时)
Configured SD card path in emulator is null - Windows Phone 8.1 (runtime)
我对 WP 8.1(运行时)SD 卡访问感到非常困惑。我试图在 WP 8.1(运行时)SD 卡中创建一个文件夹,但无法这样做。我正在关注 MSDN tutorial to access sd card in WinRT. I need SD card access in order to store my App's backup & log folders. By following 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
returns 空字符串而不是返回我配置的路径。我在 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 卡中创建自定义文件夹(应用程序名称文件夹),我会轻松创建子文件夹(备份、日志)。但是现在我一直在获取根路径。
Edit:按照评论中的建议,通过在异步调用中添加 ConfigureAwait(false)
解决了死锁问题,但 sdcard 路径仍然为空,如何获取路径并创建文件夹在那里?
使用 "externalDevices" 您正在查询 phone 中的所有存储设备。
然后试图找到它的路径。
你应该找到sdcard的根文件夹的路径,而不是sdcard本身的路径。
"sdCard.path" 可以。
在 Subha 的评论后编辑:
假设在 appxmanifest 中声明了 Removable Storage 并且模拟器插入了模拟的 SD 卡(如教程所述;Storage Sense 是否给出了弹出窗口?)以下应该有效。
请注意,我没有使用任务。
StorageFolder sdcard;
public async void read_sdcard_button_click(object sender, RoutedEventArgs e)
{
sdcard = (await KnownFolders.RemovableDevices.GetFoldersAsync()).FirstOrDefault();
}
private void some_other_method()
{
textbox.Text = sdcard.path;
}
我对 WP 8.1(运行时)SD 卡访问感到非常困惑。我试图在 WP 8.1(运行时)SD 卡中创建一个文件夹,但无法这样做。我正在关注 MSDN tutorial to access sd card in WinRT. I need SD card access in order to store my App's backup & log folders. By following 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
returns 空字符串而不是返回我配置的路径。我在 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 卡中创建自定义文件夹(应用程序名称文件夹),我会轻松创建子文件夹(备份、日志)。但是现在我一直在获取根路径。
Edit:按照评论中的建议,通过在异步调用中添加 ConfigureAwait(false)
解决了死锁问题,但 sdcard 路径仍然为空,如何获取路径并创建文件夹在那里?
使用 "externalDevices" 您正在查询 phone 中的所有存储设备。 然后试图找到它的路径。
你应该找到sdcard的根文件夹的路径,而不是sdcard本身的路径。
"sdCard.path" 可以。
在 Subha 的评论后编辑:
假设在 appxmanifest 中声明了 Removable Storage 并且模拟器插入了模拟的 SD 卡(如教程所述;Storage Sense 是否给出了弹出窗口?)以下应该有效。
请注意,我没有使用任务。
StorageFolder sdcard;
public async void read_sdcard_button_click(object sender, RoutedEventArgs e)
{
sdcard = (await KnownFolders.RemovableDevices.GetFoldersAsync()).FirstOrDefault();
}
private void some_other_method()
{
textbox.Text = sdcard.path;
}