iterate-ch / cyberduck

Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
https://cyberduck.io/
GNU General Public License v3.0
3.35k stars 292 forks source link

Cyberduck crashes if default windows downloads directory is set to a missing disk #15420

Closed benh57 closed 11 months ago

benh57 commented 11 months ago

Describe the bug If your default windows downloads directory is missing, cyberduck will not launch.

To Reproduce Steps to reproduce the behavior:

  1. On windows, Change a secondary hard drive on your system to "D"
  2. Right click Downloads in windows explorer and choose properties
  3. Click 'Location' and choose D:\Downloads
  4. Using disk management, unmount the D drive (clicking downloads in explorer will now give an error)
  5. Launch cyberduck

Expected behavior Cyberduck launches ok

Actual Result

crash

Application: Cyberduck.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.DirectoryNotFoundException at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32, IntPtr) at Windows.Win32.CorePInvoke.SHGetKnownFolderPath(System.Guid ByRef, Windows.Win32.UI.Shell.KNOWN_FOLDER_FLAG, Windows.Win32.Foundation.HANDLE) at Ch.Cyberduck.Core.EnvironmentInfo..cctor()

Exception Info: System.TypeInitializationException at Ch.Cyberduck.Core.EnvironmentInfo.get_AppDataPath() at Ch.Cyberduck.Core.Preferences.LocalSharedFileSettingsProvider..ctor()

Exception Info: System.Reflection.TargetInvocationException at System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) at System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean, System.Threading.StackCrawlMark ByRef) at System.Activator.CreateInstance(System.Type, Boolean) at System.RuntimeType.CreateInstanceImpl(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[], System.Threading.StackCrawlMark ByRef) at System.Activator.CreateInstance(System.Type, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[]) at System.Activator.CreateInstance(System.Type, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) at System.SecurityUtils.SecureCreateInstance(System.Type, System.Object[], Boolean) at System.Configuration.ApplicationSettingsBase.get_Initializer() at System.Configuration.ApplicationSettingsBase.CreateSetting(System.Reflection.PropertyInfo) at System.Configuration.ApplicationSettingsBase.EnsureInitialized() at System.Configuration.ApplicationSettingsBase.get_Properties() at System.Configuration.SettingsBase.GetPropertyValueByName(System.String) at System.Configuration.SettingsBase.get_Item(System.String) at System.Configuration.ApplicationSettingsBase.GetPropertyValue(System.String) at System.Configuration.ApplicationSettingsBase.get_Item(System.String) at Ch.Cyberduck.Properties.SharedSettings.get_CdSettings() at Ch.Cyberduck.Core.Preferences.ApplicationPreferences.get_Shared() at Ch.Cyberduck.Core.Preferences.ApplicationPreferences.load() at ch.cyberduck.core.preferences.PreferencesFactory.set(ch.cyberduck.core.preferences.Preferences) at Ch.Cyberduck.Ui.Program.Main(System.String[])

Desktop (please complete the following information):

Log Files

Additional context

AliveDevil commented 11 months ago

This is a known issue, and should be fixed in the latest snapshot update (upcoming 8.7.2, see PR #15377, related #15376). You can install the (at the time of writing) latest snapshot version Cyberduck 8.7.2.40857 ontop the current running version, or revert to an existing Downloads-folder.

// Reworded

benh57 commented 11 months ago

Thanks! Definitely not running 8.7.2, I was just using the latest from the downloads page. Will go ahead and close then.