微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

windows-phone-8.1 – 如何知道指定的路径是否引用现有文件?

我当前的方法获取当前文件夹中的顶级文件,然后检查文件是否具有指定的文件名:

public async Task<bool> FileExists(StorageFolder folder,string fileName)
{
    IReadOnlyList<StorageFile> fileList = await folder.GetFilesAsync();
    StorageFile existFile = fileList.First(x => x.Name == fileName);
    return (existFile != null);
}

有没有简单有效的方法来做到这一点?

解决方法

对于Windows Phone 8.1 RT,我建议您使用try..catch,并且不要将抛出的异常等同于布尔值,因为此时不知道该文件是否存在.

bool IsFileKNownToExist = false;

bool IsFileKNownToNotExist = false;

string FileName = "?";

try 
{
    await folder.GetFileAsync(FileName);

    IsFileKNownToExist = true;

} 
catch(Exception ex)
{
    //handle exception and set the booleans here. 
}

一旦我能掌握一系列例外,我将重新审视这一点,然后将有一个改进的方式来等同于真或假.

但是,应该返回第三个结果,表示不知道文件是否存在.在这种情况下,值得设置一个枚举:

public static enum Success
{
    True,False,Unsure
}

然后您可以使用以下代码

Success IsFileKNownToExist = Success.Unsure;

string FileName = "?";

try 
{
    await folder.GetFileAsync(FileName);

    IsFileKNownToExist = Success.True;

} 
catch(Exception ex)
{
    //handle exception and set the booleans here. 
}

switch(IsFileKNownToExist)
{
    case Success.True:
        //Code here when file exists
        break;

    case Success.False:
        //Code here when file does not exist
        break;

    default:
    case Success.Unsure:
        //Code here when it isn't kNown whether file exists or not
        break;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐