Windows Phone 8的独立存储文件系统
Contents |
文件夹 StorageFolder
获取独立存储根文件夹
ApplicationData.Current.LocalFolder;
获取文件夹
/// <summary>
/// 获取该文件夹中的子文件夹
/// </summary>
StorageFolder.GetFolderAsync(string name);
/// <summary>
/// 通过路径获取文件夹
/// </summary>
/// <param name="path">文件夹路径</param>
static StorageFolder.GetFolderFromPathAsync(string path);
通过路径获取文件夹或者文件的url如下: 打包在app中的文件夹或文件:ms-appx:///… 独立存储中的文件夹或文件:ms-appdata:///local/…
新建文件夹
/// <summary>
/// 在该文件夹中新建文件夹
/// </summary>
/// <param name="desiredName">文件夹名</param>
/// <param name="options">文件夹名有冲突时的选项</param>
StorageFolder.CreateFolderAsync(string desiredName, CreationCollisionOption options);
CreationCollisionOption枚举值: GenerateUniqueName:如果文件夹名(或文件名)已存在,自动追加一个数字 ReplaceExisting:如果文件夹名(或文件名)已存在,替换之 FailIfExists:如果文件夹名(或文件名)已存在,返回错误 OpenIfExists:如果文件夹名(或文件名)已存在,返回现有项
删除文件夹
/// <summary>
/// 删除该文件夹
/// </summary>
StorageFolder.DeleteAsync();
重命名文件夹
/// <summary>
/// 重命名该文件夹
/// </summary>
/// <param name="desiredName">新文件夹名</param>
/// <param name="option">新文件夹名有冲突时的选项</param>
StorageFolder.RenameAsync(string desiredName, NameCollisionOption option);
NameCollisionOption枚举值: GenerateUniqueName:如果新文件夹名(或文件名)已存在,自动追加一个数字 ReplaceExisting:如果新文件夹名(或文件名)已存在,替换之 FailIfExists:如果新文件夹名(或文件名)已存在,返回错误
获取文件夹内的顶级文件和子文件夹列表
/// <summary>
/// 从当前文件夹内所有文件和子文件夹的列表获取基于索引的范围。在基于所产生索引的范围内的项。
/// </summary>
/// <param name="startIndex">要检索的范围内第一个项的从零开始的索引。</param>
/// <param name="maxItemsToRetrieve">要检索的最大项数。</param>
StorageFolder.GetItemsAsync(uint startIndex, uint maxItemsToRetrieve);
文件夹的其他属性
/// <summary>
/// 获取创建当前文件夹的日期和时间。
/// </summary>
public DateTimeOffset DateCreated { get; }
/// <summary>
/// 获取当前文件夹的名称。
/// </summary>
public string Name { get; }
/// <summary>
/// 获取当前文件夹的特性。
/// </summary>
public FileAttributes Attributes { get; }
/// <summary>
/// 如果文件夹有路径,则获取当前文件夹的完整文件系统路径。
/// </summary>
public string Path { get; }
文件 StorageFile
获取文件
/// <summary>
/// 使用指定的文件名从文件夹中获取单个文件。
/// </summary>
/// <param name="name">要检索的文件的名称(或相对于当前文件夹的路径)。</param>
StorageFolder.GetFileAsync(string name);
/// <summary>
///通过路径获取文件夹。
/// </summary>
/// <param name="path">文件路径。</param>
static StorageFile.GetFileFromPathAsync(string path);
通过路径获取文件夹或者文件的url如下:
打包在app中的文件夹或文件:ms-appx:///… 独立存储中的文件夹或文件:ms-appdata:///local/…
创建文件
/// <summary>
/// 在该文件夹中创建文件
/// </summary>
/// <param name="desiredName">文件名</param>
/// <param name="options">文件名有冲突时的选项</param>
StorageFolder.CreateFileAsync(string desiredName, CreationCollisionOption options);
CreationCollisionOption枚举值: GenerateUniqueName:如果文件夹名(或文件名)已存在,自动追加一个数字 ReplaceExisting:如果文件夹名(或文件名)已存在,替换之 FailIfExists:如果文件夹名(或文件名)已存在,返回错误 OpenIfExists:如果文件夹名(或文件名)已存在,返回现有项
拷贝文件
/// <summary>
/// 拷贝文件
/// </summary>
/// <param name="destinationFolder">目标文件夹</param>
/// <param name="desiredNewName">新文件名</param>
/// <param name="option">新文件名有冲突时的选项</param>
StorageFile.CopyAsync(IStorageFolder destinationFolder, string desiredNewName, NameCollisionOption option);
NameCollisionOption枚举值: GenerateUniqueName:如果新文件夹名(或文件名)已存在,自动追加一个数字 ReplaceExisting:如果新文件夹名(或文件名)已存在,替换之 FailIfExists:如果新文件夹名(或文件名)已存在,返回错误
删除文件
/// <summary>
/// 删除该文件
/// </summary>
StorageFile.DeleteAsync();
移动文件
/// <summary>
/// 移动文件
/// </summary>
/// <param name="destinationFolder">目标文件夹</param>
/// <param name="desiredNewName">新文件名</param>
/// <param name="option">新文件名有冲突时的选项</param>
StorageFile.MoveAsync(IStorageFolder destinationFolder, string desiredNewName, NameCollisionOption option);
打开文件
/// <summary>
/// 打开随机访问流,以读取文件内容
/// </summary>
/// <param name="accessMode">访问文件模式</param>
/// <return>返回随机访问流(IRandomAccessStream 类型)。</return>
StorageFile.OpenAsync(FileAccessMode accessMode);
/// <summary>
/// 打开随机访问流,以读取文件内容
/// </summary>
/// <return>返回随机访问流(IRandomAccessStreamWithContentType类型)。</return>
StorageFile.OpenReadAsync();
/// <summary>
/// 打开顺序访问流,以读取文件内容
/// </summary>
/// <return>返回顺序访问流(IInputStream 类型)。</return>
StorageFile.OpenSequentialReadAsync();
/// <summary>
/// 打开可读写操作文件的随机访问流
/// </summary>
/// <return>返回包含随机访问流的 StorageStreamTransaction 和可用于完成事务的方法</return>
StorageFile.OpenTransactedWriteAsync();
FileAccessMode枚举值: Read:只读 ReadWrite:读写
重命名文件
/// <summary>
/// 重命名该文件夹
/// </summary>
/// <param name="desiredName">新文件名</param>
/// <param name="option">新文件名有冲突时的选项</param>
StorageFile.RenameAsync(string desiredName, NameCollisionOption option);


(no comments yet)