// Try to load an iamge from the cache // Takes in a programPath (shortcut) and processes it to the proper file name public Image loadImageCache(ProgramShortcut shortcutObject) { String programPath = shortcutObject.FilePath; if (System.IO.File.Exists(programPath) || Directory.Exists(programPath) || shortcutObject.isWindowsApp) { try { // Try to construct the path like if it existed // If it does, directly load it into memory and return it // If not then it would throw an exception in which the below code would catch it String cacheImagePath = generateCachePath(shortcutObject, programPath); using (MemoryStream ms = new MemoryStream(System.IO.File.ReadAllBytes(cacheImagePath))) return(Image.FromStream(ms)); } catch (Exception) { /* * // Try to recreate the cache icon image and catch and missing file/icon situations that may arise * * // Checks if the original file even exists to make sure to not do any extra operations * * // Same processing as above in cacheIcons() * String path = Path.Combine(Paths.ConfigPath, this.Name, "Icons", Path.GetFileNameWithoutExtension(programPath) + (Directory.Exists(programPath) ? "_FolderObjTSKGRoup.png" : ".png")); * * Image finalImage; * * if (Path.GetExtension(programPath).ToLower() == ".lnk") * { * finalImage = Forms.frmGroup.handleLnkExt(programPath); * } * else if (Directory.Exists(programPath)) * { * finalImage = handleFolder.GetFolderIcon(programPath).ToBitmap(); * } else * { * finalImage = Icon.ExtractAssociatedIcon(programPath).ToBitmap(); * } * * * // Above all sets finalIamge to the bitmap that was generated from the icons * // Save the icon after it has been fetched by previous code * finalImage.Save(path); * * // Return the said image * return finalImage; */ return(global::backgroundClient.Properties.Resources.Error); } } else { return(global::backgroundClient.Properties.Resources.Error); } }
public String generateCachePath(ProgramShortcut shortcutObject, String programPath) { /* * return @Path.GetDirectoryName(Application.ExecutablePath) + * @"\config\" + this.Name + @"\Icons\" + ((shortcutObject.isWindowsApp) ? specialCharRegex.Replace(programPath, string.Empty) : * @Path.GetFileNameWithoutExtension(programPath)) + (Directory.Exists(programPath) ? "_FolderObjTSKGRoup.png" : ".png"); */ return(Path.Combine(Paths.ConfigPath, this.Name, "Icons", ((shortcutObject.isWindowsApp) ? specialCharRegex.Replace(programPath, string.Empty) : @Path.GetFileNameWithoutExtension(programPath)) + (Directory.Exists(programPath) ? "_FolderObjTSKGRoup.jpg" : ".png"))); }