Windows 8 如何检查WinRT中的StorageFolder中是否存在文件

Windows 8 如何检查WinRT中的StorageFolder中是否存在文件,windows-8,windows-runtime,Windows 8,Windows Runtime,可能重复: 我正在使用StorageFolder,需要在读取文件之前检查文件是否存在,以避免出现异常 我的代码如下所示: StorageFolder storageFolder = ApplicationData.Current.LocalFolder; StorageFile sampleFile = await storageFolder.GetFileAsync(myPath); 问题是,我找不到检查文件是否存在的方法上次我检查时,您必须捕获异常: (可能已经改变了) 编辑:这是一种方

可能重复:

我正在使用StorageFolder,需要在读取文件之前检查文件是否存在,以避免出现异常

我的代码如下所示:

StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await storageFolder.GetFileAsync(myPath);

问题是,我找不到检查文件是否存在的方法上次我检查时,您必须捕获异常: (可能已经改变了)

编辑:这是一种方法:)

像这样:

    static async Task<bool> DoesFileExistAsync(string fileName)
    {
        try
        {
            await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
            return true;
        }
        catch
        {
            return false;
        }
    }
静态异步任务DoesFileExistAsync(字符串文件名)
{
尝试
{
等待ApplicationData.Current.LocalFolder.GetFileAsync(文件名);
返回true;
}
抓住
{
返回false;
}
}

我认为这样更好:var folder=ApplicationData.Current.LocalFolder;var file=await folder.TryGetItemAsync(“file.txt”)作为IStorageFile;如果(file!=null){//文件存在,“file”变量包含对它的引用。}否则{//文件不存在。}Jon,TryGetItemAsync仅适用于Windows 8.1,而不适用于Windows Phone 8.1。您的答案有效,但不适用于通用应用程序。这会尝试读取所有文件数据吗?或者它只是获取元数据?