在Windows Phone 8 中,操作文件的方式限制很大,对独立存储中的文件访问,可以采取两种形式:
1、IsolatedStorageFile file = IsolatedStorageFile .GetUserStoreForApplication();
2、StorageFolder folder = Windows.Storage.ApplicationData .Current.LocalFolder;
IReadOnlyList<StorageFile > files &#61; await folder.GetFilesAsync();
两者取到的文件夹路径是一致的&#xff0c;都是 "C:\Data\Users\DefApps\AppData\{7315D4B4-02D4-452C-A618-08281E0192F1}\Local"&#xff0c;大括号括起来的部分是根据应用程序变化而变化的,是应用程序的ProductID
如下图&#xff1a;
3、IsolatedStorageFile file &#61; IsolatedStorageFile .GetUserStoreForApplication();
file.CreateDirectory("ddd");
file.CreateFile("ddd\\ds");
file.CreateFile("sss");
这段代码在Local文件夹下创建了一个ddd文件夹和sss一个文件&#xff0c;在ddd文件夹下面创建了一个ds文件。
当使用
string[] files &#61; file.GetFileNames();
获取独立存储文件下面的文件时&#xff0c;只能获取到当前文件夹下面的文件&#xff0c;对于子文件夹的文件&#xff0c;无法获取到&#xff0c;只能通过遍历子文件夹来获取子文件夹下面的 文件。
对于file.GetDirectoryNames()&#xff0c;可以获取到一个“Shared”文件夹&#xff0c;这个文件夹的作用我还不知道- -&#xff01;
4、SD卡
ExternalStorageDevice externalStorageDevice &#61; sdCards.FirstOrDefault();
//ExternalStorageFolder sdFolder &#61; await externalStorageDevice.GetFolderAsync("d:\\data1");
ExternalStorageFolder rootFolder &#61; externalStorageDevice.RootFolder;
IEnumerable<ExternalStorageFolder> subFolders &#61; await rootFolder.GetFoldersAsync();
以上代码结果参照下图&#xff1a;
可以发现SD卡的默认盘符为&#xff1a;“D:\\”。
获取到的subFolders&#xff1a;只有自己创建的文件夹&#xff0c;对于系统文件夹&#xff1a;WPSystem、Music、Pictures、Videos等&#xff0c;均无法获取到。
参照下图&#xff1a;
可以看到在Windows Phone Runtime中&#xff0c;只有LocalFolder被实现。
LocalFolder的所有成员如下图&#xff1a;