我当前的方法是获取当前文件夹中的顶级文件,然后检查文件是否具有指定的文件名:
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 举报,一经查实,本站将立刻删除。