×
Namespaces

Variants
Actions

Windows Phone 8的独立存储文件系统

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon File.png
SignpostIcon XAML 40.png
WP Metro Icon WP8.png
Article Metadata

兼容于
文章
Xinx Gong 在 27 Dec 2012 创建
最后由 hamishwillee 在 28 Jun 2013 编辑

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);
This page was last modified on 28 June 2013, at 09:47.
144 page views in the last 30 days.
×