代码如何获得Windows Phone 8.1的内部/外部存储

时间:2014-05-15 07:27:15

标签: c# windows-phone windows-phone-8.1

我很困惑如何在Windows Phone 8.1中获取文件夹列表 有没有人经历过这个或有任何想法? 我想在列表视图中显示存储中的所有文件夹 感谢

var storageAssets = await ExternalStorage.GetExternalStorageDevicesAsync();
ExternalStorageDevice item = storageAssets.FirstOrDefault();
ExternalStorageFolder folder = item.RootFolder;
var _folderList = await folder.GetFoldersAsync();
foreach (var _folder in _folderList)
{
     Debug.WriteLine(_folder.Name);
}

我试图在listview中存储之前首先使用调试来显示它们 但是代码错误表明ExternalStorage已经存在

1 个答案:

答案 0 :(得分:1)

The MSDN article and will do a better job of explaining than I can,但摘要是:

首先,您需要在清单文件中使用以下内容:

    <Capability Name="removableStorage" />

以及至少一个文件类型声明(这些是您可以在SD卡上访问的文件:

    <Extension Category="windows.fileTypeAssociation">
      <FileTypeAssociation Name="foo">
        <SupportedFileTypes>
          <FileType ContentType="foo/bar">.bar</FileType>
        </SupportedFileTypes>
      </FileTypeAssociation>
    </Extension>

然后在你的代码中获取SD卡的根目录:

StorageFolder sdCard = (await KnownFolders.RemovableDevices.GetFoldersAsync()).FirstOrDefault();
if (sdCard == null)
{ return; /*no SD card*/}

并枚举文件夹使用:

 IReadOnlyList<StorageFolder> folders = await sdCard.GetFoldersAsync();