×
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.
197 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×