public string GenerateNewFilename(ImageFileNameFormat format) { //const int FILENAME_MAX_LENGTH = 254; string[] parts = URL.Split('/'); string lastPart = (parts.Length > 0) ? parts.Last() : URL; string extension = Path.GetExtension(URL); // Contains period (.). string result; switch (format) { case ImageFileNameFormat.ID: result = lastPart; break; case ImageFileNameFormat.OriginalFilename: result = UploadedFilename + extension; break; case ImageFileNameFormat.IDAndOriginalFilename: default: result = Path.GetFileNameWithoutExtension(URL) + " - " + UploadedFilename + extension; break; } if (format == ImageFileNameFormat.ID) { result = lastPart; } else if (format == ImageFileNameFormat.OriginalFilename) { result = UploadedFilename + extension; } else if (format == ImageFileNameFormat.IDAndOriginalFilename) { result = Path.GetFileNameWithoutExtension(URL) + " - " + UploadedFilename + extension; } else //ImageFileFormat == OriginalFilenameAndID { result = UploadedFilename + " - " + Path.GetFileNameWithoutExtension(URL) + extension; } //if (result.Length > FILENAME_MAX_LENGTH) //{ // result = result.Substring(0, FILENAME_MAX_LENGTH - extension.Length) + extension; //} //Program.Log($"Filename generated: {result}. Length: {result.Length}"); return(result); }
/// <summary> /// Save settings to disk. /// </summary> /// <param name="path">Path to where the application downloads</param> /// <param name="time">Thrad refresh timer in seconds</param> /// <param name="loadHTML">Save HTML or not</param> /// <param name="saveOnclose">Save URLs or not</param> /// <param name="minimizeToTray">Minimize to tray or not</param> /// <param name="closeWarn">Warn before closing or not</param> public static void SaveSettings( string path, int time, ImageFileNameFormat imageFileNameFormat, ThreadFolderNameFormat threadFolderNameFormat, bool loadHTML, bool saveOnclose, bool minimizeToTray, bool closeWarn, bool startWithWindows, bool startWithWindowsMinimized, bool addThreadSubjectToFolder, bool addUrlFromClipboardWhenTextboxEmpty, bool checkForUpdatesOnStart) { Properties.Settings.Default.SavePath = path; Properties.Settings.Default.ScanTimer = time; Properties.Settings.Default.ImageFilenameFormat = (byte)imageFileNameFormat; Properties.Settings.Default.ThreadFolderNameFormat = (byte)threadFolderNameFormat; Properties.Settings.Default.SaveHTML = loadHTML; Properties.Settings.Default.SaveListsOnClose = saveOnclose; Properties.Settings.Default.MinimizeToTray = minimizeToTray; Properties.Settings.Default.WarnOnClose = closeWarn; Properties.Settings.Default.StartWithWindowsMinimized = startWithWindowsMinimized; Properties.Settings.Default.AddThreadSubjectToFolder = addThreadSubjectToFolder; Properties.Settings.Default.AddUrlFromClipboardWhenTextboxEmpty = addUrlFromClipboardWhenTextboxEmpty; Properties.Settings.Default.CheckForUpdatesOnStart = checkForUpdatesOnStart; Properties.Settings.Default.Save(); RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); if (startWithWindows) { registryKey.SetValue(PROGRAM_NAME, '"' + Application.ExecutablePath + '"' + (minimizeToTray && startWithWindowsMinimized ? $" {Program.TRAY_CMDLINE_ARG}" : "")); } else if (registryKey.GetValue(PROGRAM_NAME) != null) { registryKey.DeleteValue(PROGRAM_NAME); } }