[英]SaveFileDialog throws System.InvalidOperationException: 'My File.xlsx' is not a valid file name
客戶剛剛在我們的應用程序中遇到此錯誤,這在Microsoft.Win32.SaveFileDialog上調用ShowDialog時基本上就會發生。 完整的堆棧跟蹤如下:
System.InvalidOperationException:'My File.xlsx'不是有效的文件名。 位於Microsoft.Win32.FileDialog.RunLegacyDialog(IntPtr hwndOwner)的Microsoft.Win32.FileDialog.RunFileDialog(OPENFILENAME_I ofn)at Microsoft.Win32.FileDialog.RunDialog(IntPtr hwndOwner)at Microsoft.Win32.CommonDialog.ShowDialog(Window owner)at(我們的代碼在這里
顯示對話框的代碼非常標准:
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,並且正在使用包含/(“My / File.xlsx”)的文件名打開SaveFileDialog。 這導致ShowDialog()在顯示對話框之前拋出上述錯誤。 但是,錯誤消息僅包含/(在此示例中為“File.xlsx”)之后的文件名部分。
在Windows 8上,使用包含/的文件名調用ShowDialog是沒有問題的。 它只會阻止您在不更改名稱的情況下進行保存,因為帶有/的名稱無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.