我正在将应用程序部署到Windows 7,Windows 10和Linux。有一次我正在使用OpenFileDialog允许用户选择文件路径。这可以在Windows 10和Linux中使用,但是在Windows 7中运行时会引发ArgumentException。
我尝试通过显示异常消息来调查异常,该异常消息为“值不在预期范围内”。我不确定这意味着什么。它在Windows 10中可以正常工作,所以我不知道为什么它在这里无法正常工作。
我有一个GetPath()方法,该方法使用OpenFileDialog获取选定的路径,还有一个单击按钮的事件,该事件调用GetPath()并将结果设置为局部变量。
public async Task<string> GetPath()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filters.Add(new FileDialogFilter() { Name = "Csv", Extensions = { "csv" } });
string[] result = await dialog.ShowAsync(this); //sets opened file to a stream
string stream = string.Join(" ", result); //converts string[] to string
return stream; //returns path to selected file
}
private async void MasterBrowse_Clicked(object sender, RoutedEventArgs args)
{
string getPath = string.Empty;
try
{
getPath = await GetPath();
}
catch (ArgumentException e)
{
await MessageBox.Show(this, "Make sure to select a file before continuing\n" + "Exception: " + e.Message, "Error: incorrect file", MessageBox.MessageBoxButtons.Ok);
}
}
预期: GetPath()应该使用OpenFileDialog并将所选路径另存为字符串,然后将其返回。 MasterBrowse_Clicked()应该获取返回的字符串。
实际: 调用OpenFileDialog.ShowAsync()时引发ArgumentException。