【发布时间】:2016-02-22 08:08:27
【问题描述】:
我认为这会很简单,而且可能是这样,我只是在错误的地方寻找,但这是我尝试过的
我想检查一个文件是否存在。这是用户从FileOpenPicker 中选择的文件。所以,我需要能够检查他们选择的文件是否存在。在我的代码中,我只是设置了一个静态路径,以便我的编码示例保持简单。
请记住,这不适用于 windows phone,这是适用于 windows 8.1 桌面应用程序
试试 1
来自here
private async void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (await DoesFileExistAsync("C:\\Users\\username\\Documents\\testFiles\\testFile.docx"))
{
var checkboxDialog = new MessageDialog("exists");
await checkboxDialog.ShowAsync();
}
else
{
var nopeDialog = new MessageDialog("doesn't exist");
await nopeDialog.ShowAsync();
}
}
async Task<bool> DoesFileExistAsync(string fileName)
{
try
{
//This was originally just await FolderPicker.GetFileAsync(fileName), but it didn't compile.
await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(fileName);
return true;
}
catch
{
return false;
}
}
这总是返回 false。我尝试以多种方式设置文件名,但没有运气。我认为这是最接近正确的,但我无法走到最后。
试试 2
来自here
private async void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.TryGetItemAsync("C:\\Users\\username\\Documents\\testFiles\\testFile.docx");
if (file != null)
{
var checkboxDialog = new MessageDialog("exists");
await checkboxDialog.ShowAsync();
}
else
{
var nopeDialog = new MessageDialog("doesn't exist");
await nopeDialog.ShowAsync();
}
}
这个方法基本相同,结果也一样。尝试TryGetItemAsync时它有FileNotFoundException
感谢任何帮助。我只想知道文件是否存在...
【问题讨论】:
标签: c# win-universal-app