Windows Phone 8.1 |如何确定本地文件夹中是否存在文件?

时间:2015-02-12 18:28:31

标签: file windows-phone-8.1

如何确定文件是否存在于本地文件夹中(Windows.Storage.ApplicationData.Current.LocalFolder) 在Windows Phone 8.1上?

1 个答案:

答案 0 :(得分:11)

不幸的是,现在没有直接的方法来检查文件是否存在。您可以尝试使用以下两种方法之一:

  • 获取一个文件,如果抛出异常则表示该文件不存在,
  • 列出所有文件并检查是否有搜索到的文件名

简单的扩展方法可能如下所示:

public static class FileExtensions
{
    public static async Task<bool> FileExists(this StorageFolder folder, string fileName)
    {
        try { StorageFile file = await folder.GetFileAsync(fileName); }
        catch { return false; }
        return true;
    }

    public static async Task<bool> FileExist2(this StorageFolder folder, string fileName)
    { return (await folder.GetFilesAsync()).Any(x => x.Name.Equals(fileName)); }
}

然后你可以像这样使用它们:

bool isFile = await ApplicationData.Current.LocalFolder.FileExists("myfile.txt");

如果文件不存在且文件夹中的文件很少,第二种方法可以快一点,因此不会抛出异常。