Один из моих клиентов испытывает сбой в моем приложении WPF при сохранении файла.
Код моего файла сохранения:
var saveFileDialog = new SaveFileDialog {
InitialDirectory = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"\MyApp"),
FileName = "MyFile",
OverwritePrompt = true,
AddExtension = true
};
if (saveFileDialog.ShowDialog() == true) {
...
}
И вот исключение, которое они получают:
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()
(где ShowDialog
в последней строке относится к звонку, который я сделал в моем коде выше.)
Так что я догадываюсь, что в случае моего клиента звонокEnvironment.GetFolderPath (Environment.SpecialFolder.MyDocuments) возвращает то, что SaveFileDialog
не нравится как InitialDirectory
.Я обнаружил в веб-поиске (и подтвердил), что эта ошибка возникает при передаче относительного пути как InitialDirectory
SaveFileDialog.Возможно ли, чтобы Environment.SpecialFolder.MyDocuments
мог быть возвращен как относительный путь?Если нет, кто-нибудь знает другой потенциально недопустимый формат?Может быть причиной является определенный сетевой путь SpecialFolder.MyDocuments?Любые другие идеи?
У меня нет прямого доступа к машине моего клиента, и они не особо разбираются в технологиях, поэтому невозможно быть на 100% уверенным в том, что происходит.