Einer meiner Kunden stürzt beim Speichern einer Datei in meiner WPF-Anwendung ab.SaveFileDialog-Ausnahme in meiner WPF-App
meine Datei Code speichern ist:
var saveFileDialog = new SaveFileDialog {
InitialDirectory = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"\MyApp"),
FileName = "MyFile",
OverwritePrompt = true,
AddExtension = true
};
if (saveFileDialog.ShowDialog() == true) {
...
}
Und hier ist die Ausnahme, sie werden immer:
Value does not fall within the expected range.
A System.ArgumentException occurred
at MS.Internal.Interop.HRESULT.ThrowIfFailed(String message)
at MS.Internal.AppModel.ShellUtil.GetShellItemForPath(String path)
at Microsoft.Win32.FileDialog.PrepareVistaDialog(IFileDialog dialog)
at Microsoft.Win32.FileDialog.RunVistaDialog(IntPtr hwndOwner)
at Microsoft.Win32.FileDialog.RunDialog(IntPtr hwndOwner)
at Microsoft.Win32.CommonDialog.ShowDialog()
(Wo die ShowDialog
in der letzten Zeile auf den Aufruf bezieht sich ich in meinem Code machen oben.)
Also meine Ahnung ist, dass in meinem Kunden der Aufruf von Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments) etwas zurückgibt, dass die SaveFileDialog
mag nicht wie die InitialDirectory
. Ich habe in Websuchen gefunden (und validiert), dass dieser Fehler auftritt, wenn ein relativer Pfad als des SaveFileDialog übergeben wird. Ist es möglich, dass Environment.SpecialFolder.MyDocuments
als relativer Pfad zurückgegeben werden konnte? Wenn nicht, weiß jemand ein anderes möglicherweise ungültiges Format? Könnte ein bestimmter SpecialFolder.MyDocuments-Netzwerkpfad die Ursache sein? Irgendwelche anderen Ideen?
Ich habe keinen direkten Zugriff auf die Maschine meines Kunden und sie sind nicht besonders technisch versiert, so dass es nicht möglich ist, 100% sicher zu sein, was passiert.
Haben Sie dieses http://stackoverflow.com/questions/5385619/issue-with-debugging-visual-studio-2010-solution-that-utiles-filedialog-from-t und diesen http: // stackoverflow gesehen. com/questions/6433373/wpf-vb-net-openfiledialog-showdialog-wirft eine ausnahme? –
Ja, beide nicht verwandt. Zunächst geht es um relative Dateipfade (die ich speziell in meiner Frage in Bezug auf SpecialFolder erkundige).Meine Dokumente). Das zweite hat eine Antwort, die ich nicht einmal mit der ursprünglichen Frage in Verbindung bringen kann - egal, es hilft mir nicht. – Ross
Mögliches Duplikat von [OpenFileDialog.ShowDialog() löst eine Ausnahme aus?] (Http://stackoverflow.com/questions/6433373/openfiledialog-showdialog-throws-an-exception) –