簡體   English   中英

SaveFileDialog拋出System.InvalidOperationException:'My File.xlsx'不是有效的文件名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM