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