gpt4 book ai didi

c# - SaveFileDialog 抛出 System.InvalidOperationException : 'My File.xlsx' is not a valid file name

转载 作者:行者123 更新时间:2023-11-30 12:09:51 24 4
gpt4 key购买 nike

一位客户刚刚在我们的应用程序中遇到了这个错误,这基本上是在对 Microsoft.Win32.SaveFileDialog 调用 ShowDialog 时发生的。完整的堆栈跟踪如下:

System.InvalidOperationException: 'My File.xlsx' is not a valid file name. at Microsoft.Win32.SaveFileDialog.RunFileDialog(OPENFILENAME_I ofn) at Microsoft.Win32.FileDialog.RunLegacyDialog(IntPtr hwndOwner) at Microsoft.Win32.FileDialog.RunDialog(IntPtr hwndOwner) at Microsoft.Win32.CommonDialog.ShowDialog(Window owner) at (our code here)

显示对话框的代码非常标准:

var dialog = new SaveFileDialog
{
Filter = "Excel files (.xlsx)|*.xlsx",
FileName = "My File.xlsx",
};

if (dialog.ShowDialog() == true)
{
result = dialog.FileName;
}
else
{
result = null;
}

我们的应用程序是一个运行在 .NET 4.0 框架上的 WPF 应用程序。该代码在我的机器以及所有其他客户的机器上都可以正常工作,但它会为该特定客户抛出此错误。我尝试对此进行一些研究,但我没有发现任何有用的可能导致它的原因。文件名似乎完全有效。有什么想法吗?

最佳答案

似乎此方法在 Windows XP 或更高版本的 Windows 上没有相同的行为。

客户运行的是 Windows XP,打开 SaveFileDialog 时文件名中包含/(“My/File.xlsx”)。这导致 ShowDialog() 在显示对话框之前抛出上述错误。但是,错误消息仅包含/之后的文件名部分(本例中为“File.xlsx”)。

在 Windows 8 上,使用包含/的文件名调用 ShowDialog 没有问题。它只会阻止您在不更改名称的情况下进行保存,因为带有/的名称无效。

关于c# - SaveFileDialog 抛出 System.InvalidOperationException : 'My File.xlsx' is not a valid file name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20074351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com