簡體   English   中英

在模擬器中配置的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教程來訪問WinRT中的SD卡。 我需要SD卡訪問權限才能存儲我的應用程序的備份和日志文件夾。 通過遵循教程,我在模擬器中配置了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路徑仍為空,如何獲取路徑並在那里創建文件夾?

使用“ externalDevices”,您可以查詢手機中的所有存儲設備。 然后嘗試找到其路徑。

您應該找到sdcard 根文件夾的路徑,而不是sdcard本身的路徑。

“ sdCard.path”將起作用。

在Subha評論后編輯
假設在appxmanifest中聲明了可移動存儲 ,並且模擬器插入了模擬的sdcard(如本教程所述; 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM