(AvaloniaUI)在Windows 7中使用OpenFileDialog时引发ArgumentException

时间:2019-07-29 16:29:15

标签: windows-7 openfiledialog argumentexception avaloniaui

我正在将应用程序部署到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。

0 个答案:

没有答案