public virtual long Size() { try { return(Shared.DirectorySize(basePath, hakchi.BLOCK_SIZE)); } catch { } return(0); }
public virtual long Size() { try { return(Shared.DirectorySize(basePath)); } catch { } return(0); }
public virtual long Size() { try { return(Shared.DirectorySize(basePath, hakchi.BLOCK_SIZE, new string[] { $"{desktop.Code}_original.png", $"{desktop.Code}_spine.png", $"{desktop.Code}_logo.png" })); } catch { } return(0); }
private void TechInfo_Load(object sender, EventArgs e) { try { ListViewGroup generalInfoGroup = new ListViewGroup("General information"), localHakchiGroup = new ListViewGroup("Loadl hakchi.hmod"), shellInfoGroup = new ListViewGroup("Shell information"), hakchiGroup = new ListViewGroup("Running hakchi.hmod info"), pathsGroup = new ListViewGroup("Paths"), memoryStatsGroup = new ListViewGroup("Memory stats"), consoleSettingsGroup = new ListViewGroup("Console settings"), settingsGroup = new ListViewGroup("Settings"); listView1.Groups.AddRange(new ListViewGroup[] { generalInfoGroup, localHakchiGroup, shellInfoGroup, hakchiGroup, pathsGroup, memoryStatsGroup, consoleSettingsGroup, settingsGroup }); string devTools = ""; if (ConfigIni.Instance.ForceClovershell) { devTools += "Force Clovershell, "; } if (ConfigIni.Instance.ForceSSHTransfers) { devTools += "Force SSH Transfers, "; } if (ConfigIni.Instance.UploadToTmp) { devTools += "Upload to /tmp, "; } devTools = devTools.TrimEnd(new char[] { ',', ' ' }); if (string.IsNullOrWhiteSpace(devTools)) { devTools = "None"; } var gamesSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games")); var gamesNum = gamesSize > 0 ? Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games")).Count() : 0; var gamesSnesSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games_snes")); var gamesSnesNum = gamesSnesSize > 0 ? Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games_snes")).Count() : 0; var gamesCacheSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games_cache")); var gamesCacheNum = gamesCacheSize > 0 ? Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games_cache")).Count() : 0; listView1.Items.AddRange(new ListViewItem[] { // general info new ListViewItem(new string[] { "hakchi2 CE version:", Shared.AppDisplayVersion }, generalInfoGroup), new ListViewItem(new string[] { "Portable mode:", Program.isPortable ? Resources.Yes : Resources.No }, generalInfoGroup), new ListViewItem(new string[] { "Developer tools:", devTools }, generalInfoGroup), new ListViewItem(new string[] { "Internal path:", Program.BaseDirectoryInternal }, generalInfoGroup), new ListViewItem(new string[] { "External path:", Program.BaseDirectoryExternal }, generalInfoGroup), new ListViewItem(new string[] { "/games:", gamesNum > 0 ? ($"{gamesNum} directories (" + Shared.SizeSuffix(gamesSize) + ")") : Resources.None }, generalInfoGroup), new ListViewItem(new string[] { "/games_snes:", gamesSnesNum > 0 ? ($"{gamesSnesNum} directories (" + Shared.SizeSuffix(gamesSnesSize) + ")") : Resources.None }, generalInfoGroup), new ListViewItem(new string[] { "/games_cache", gamesCacheNum > 0 ? ($"{gamesCacheNum} directories (" + Shared.SizeSuffix(gamesCacheSize) + ")") : Resources.None }, generalInfoGroup), // local hakchi info new ListViewItem(new string[] { "Boot version:", hakchi.RawLocalBootVersion }, localHakchiGroup), new ListViewItem(new string[] { "Kernel version:", hakchi.RawLocalKernelVersion }, localHakchiGroup), new ListViewItem(new string[] { "Script version:", hakchi.RawLocalScriptVersion }, localHakchiGroup), // shell info new ListViewItem(new string[] { "Connected:", hakchi.Connected ? Resources.Yes : Resources.No }, shellInfoGroup), // settings new ListViewItem(new string[] { "Separate games for multiboot:", ConfigIni.Instance.SeparateGameStorage ? Resources.Yes : Resources.No }, settingsGroup), new ListViewItem(new string[] { "Use linked sync:", ConfigIni.Instance.SyncLinked ? Resources.Yes : Resources.No }, settingsGroup), }); if (hakchi.Connected) { // shell string shell = Resources.Unknown; if (hakchi.Shell is INetworkShell) { shell = "SSH"; } else if (hakchi.Shell is clovershell.ClovershellConnection) { shell = "Clovershell"; } listView1.Items.AddRange(new ListViewItem[] { // shell info new ListViewItem(new string[] { "Shell:", shell }, shellInfoGroup), new ListViewItem(new string[] { "Can interact:", hakchi.CanInteract ? Resources.Yes : Resources.No }, shellInfoGroup), new ListViewItem(new string[] { "Minimal memboot:", hakchi.MinimalMemboot ? Resources.Yes : Resources.No }, shellInfoGroup), new ListViewItem(new string[] { "Console unique ID:", hakchi.UniqueID }, shellInfoGroup), // hakchi info new ListViewItem(new string[] { "Boot version:", hakchi.RawBootVersion }, hakchiGroup), new ListViewItem(new string[] { "Kernel version:", hakchi.RawKernelVersion }, hakchiGroup), new ListViewItem(new string[] { "Script version:", hakchi.RawScriptVersion }, hakchiGroup), }); if (hakchi.MinimalMemboot) { // no-op } else { if (hakchi.CanInteract) { listView1.Items.AddRange(new ListViewItem[] { // more shell info new ListViewItem(new string[] { "Detected console type:", MainForm.GetConsoleTypeName(hakchi.DetectedConsoleType) }, shellInfoGroup), new ListViewItem(new string[] { "Custom firmware:", hakchi.CustomFirmwareLoaded ? Resources.Yes : Resources.No }, shellInfoGroup), // paths new ListViewItem(new string[] { "Config:", hakchi.ConfigPath }, pathsGroup), new ListViewItem(new string[] { "Remote sync:", hakchi.RemoteGameSyncPath }, pathsGroup), new ListViewItem(new string[] { "System code:", hakchi.SystemCode ?? "-" }, pathsGroup), new ListViewItem(new string[] { "Media:", hakchi.MediaPath }, pathsGroup), new ListViewItem(new string[] { "Original games:", hakchi.OriginalGamesPath }, pathsGroup), new ListViewItem(new string[] { "Games:", hakchi.GamesPath }, pathsGroup), new ListViewItem(new string[] { "RootFS:", hakchi.RootFsPath }, pathsGroup), new ListViewItem(new string[] { "Profile:", hakchi.GamesProfilePath }, pathsGroup), new ListViewItem(new string[] { "SquashFS:", hakchi.SquashFsPath }, pathsGroup), // memory stats new ListViewItem(new string[] { "Storage total:", Shared.SizeSuffix(MemoryStats.StorageTotal) }, memoryStatsGroup), new ListViewItem(new string[] { "Storage used:", Shared.SizeSuffix(MemoryStats.StorageUsed) }, memoryStatsGroup), new ListViewItem(new string[] { "Storage free:", Shared.SizeSuffix(MemoryStats.StorageFree) }, memoryStatsGroup), new ListViewItem(new string[] { "External saves:", MemoryStats.ExternalSaves ? Resources.Yes : Resources.No }, memoryStatsGroup), new ListViewItem(new string[] { "Saves:", Shared.SizeSuffix(MemoryStats.SaveStatesSize) }, memoryStatsGroup), new ListViewItem(new string[] { "All games:", Shared.SizeSuffix(MemoryStats.AllGamesSize) }, memoryStatsGroup), new ListViewItem(new string[] { "Non multiboot games:", Shared.SizeSuffix(MemoryStats.NonMultibootGamesSize) }, memoryStatsGroup), new ListViewItem(new string[] { "Extra files:", Shared.SizeSuffix(MemoryStats.ExtraFilesSize) }, memoryStatsGroup), }); // collections sizes foreach (var pair in MemoryStats.Collections) { listView1.Items.Add( new ListViewItem(new string[] { MainForm.GetConsoleTypeName(pair.Key) + " games:", Shared.SizeSuffix(pair.Value) }, memoryStatsGroup)); } } } } logContentsRichTextBox.Text = Program.GetCurrentLogContent(); } catch (Exception ex) { Tasks.ErrorForm.Show(this, ex); } }
private void TechInfo_Load(object sender, EventArgs e) { string devTools = ""; if (ConfigIni.Instance.ForceClovershell) { devTools += "Force Clovershell, "; } if (ConfigIni.Instance.ForceSSHTransfers) { devTools += "Force SSH Transfers, "; } if (ConfigIni.Instance.UploadToTmp) { devTools += "Upload to /tmp, "; } if (ConfigIni.Instance.DisableClovershellListener) { devTools += "Disable Clovershell listener, "; } if (ConfigIni.Instance.DisableSSHListener) { devTools += "Disable SSH listener, "; } devTools = devTools.TrimEnd(new char[] { ',', ' ' }); if (string.IsNullOrWhiteSpace(devTools)) { devTools = "None"; } var gamesSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games")); var gamesNum = Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games")).Count(); var gamesSnesSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games_snes")); var gamesSnesNum = Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games_snes")).Count(); var gamesCacheSize = Shared.DirectorySize(Path.Combine(Program.BaseDirectoryExternal, "games_cache")); var gamesCacheNum = Directory.EnumerateDirectories(Path.Combine(Program.BaseDirectoryExternal, "games_cache")).Count(); listView1.Items.AddRange(new ListViewItem[] { // general info new ListViewItem(new string[] { "hakchi2 CE version:", Shared.AppDisplayVersion }, listView1.Groups[0]), new ListViewItem(new string[] { "Portable mode:", Program.isPortable ? Resources.Yes : Resources.No }, listView1.Groups[0]), new ListViewItem(new string[] { "Developer tools:", devTools }, listView1.Groups[0]), new ListViewItem(new string[] { "Internal path:", Program.BaseDirectoryInternal }, listView1.Groups[0]), new ListViewItem(new string[] { "External path:", Program.BaseDirectoryExternal }, listView1.Groups[0]), new ListViewItem(new string[] { "/games:", $"{gamesNum} directories (" + Shared.SizeSuffix(gamesSize) + ")" }, listView1.Groups[0]), new ListViewItem(new string[] { "/games_snes:", $"{gamesSnesNum} directories (" + Shared.SizeSuffix(gamesSnesSize) + ")" }, listView1.Groups[0]), new ListViewItem(new string[] { "/games_cache", $"{gamesCacheNum} directories (" + Shared.SizeSuffix(gamesCacheSize) + ")" }, listView1.Groups[0]), // settings new ListViewItem(new string[] { "Separate games for multiboot:", ConfigIni.Instance.SeparateGameStorage ? Resources.Yes : Resources.No }, listView1.Groups[6]), new ListViewItem(new string[] { "Use linked sync:", ConfigIni.Instance.SyncLinked ? Resources.Yes : Resources.No }, listView1.Groups[6]), }); string shell = Resources.Unknown; string connected = Resources.No; string minimalMemboot = Resources.No; if (hakchi.Connected) { // shell connected = Resources.Yes; if (hakchi.Shell is INetworkShell) { shell = "SSH"; } else if (hakchi.Shell is clovershell.ClovershellConnection) { shell = "Clovershell"; } // shell info listView1.Items.AddRange(new ListViewItem[] { new ListViewItem(new string[] { "Connected:", connected }, listView1.Groups[1]), new ListViewItem(new string[] { "Shell:", shell }, listView1.Groups[1]), new ListViewItem(new string[] { "Can interact:", hakchi.CanInteract ? Resources.Yes : Resources.No }, listView1.Groups[1]), new ListViewItem(new string[] { "Minimal memboot:", hakchi.MinimalMemboot ? Resources.Yes : Resources.No }, listView1.Groups[1]), }); if (hakchi.MinimalMemboot) { // no-op } if (hakchi.CanInteract) { listView1.Items.AddRange(new ListViewItem[] { // more shell info new ListViewItem(new string[] { "Detected console type:", MainForm.GetConsoleTypeName(hakchi.DetectedConsoleType) }, listView1.Groups[1]), new ListViewItem(new string[] { "Custom firmware:", hakchi.CustomFirmwareLoaded ? Resources.Yes : Resources.No }, listView1.Groups[1]), new ListViewItem(new string[] { "Console unique ID:", hakchi.UniqueID }, listView1.Groups[1]), // hakchi info new ListViewItem(new string[] { "Boot version:", hakchi.BootVersion }, listView1.Groups[2]), new ListViewItem(new string[] { "Kernel version:", hakchi.KernelVersion }, listView1.Groups[2]), new ListViewItem(new string[] { "Script version:", hakchi.ScriptVersion }, listView1.Groups[2]), // paths new ListViewItem(new string[] { "Config:", hakchi.ConfigPath }, listView1.Groups[3]), new ListViewItem(new string[] { "Remote sync:", hakchi.RemoteGameSyncPath }, listView1.Groups[3]), new ListViewItem(new string[] { "System code:", hakchi.SystemCode ?? "-" }, listView1.Groups[3]), new ListViewItem(new string[] { "Media:", hakchi.MediaPath }, listView1.Groups[3]), new ListViewItem(new string[] { "Original games:", hakchi.OriginalGamesPath }, listView1.Groups[3]), new ListViewItem(new string[] { "Games:", hakchi.GamesPath }, listView1.Groups[3]), new ListViewItem(new string[] { "RootFS:", hakchi.RootFsPath }, listView1.Groups[3]), new ListViewItem(new string[] { "Profile:", hakchi.GamesProfilePath }, listView1.Groups[3]), new ListViewItem(new string[] { "SquashFS:", hakchi.SquashFsPath }, listView1.Groups[3]), // memory stats new ListViewItem(new string[] { "Storage total:", Shared.SizeSuffix(MemoryStats.StorageTotal) }, listView1.Groups[4]), new ListViewItem(new string[] { "Storage used:", Shared.SizeSuffix(MemoryStats.StorageUsed) }, listView1.Groups[4]), new ListViewItem(new string[] { "Storage free:", Shared.SizeSuffix(MemoryStats.StorageFree) }, listView1.Groups[4]), new ListViewItem(new string[] { "External saves:", MemoryStats.ExternalSaves ? Resources.Yes : Resources.No }, listView1.Groups[4]), new ListViewItem(new string[] { "Saves:", Shared.SizeSuffix(MemoryStats.SaveStatesSize) }, listView1.Groups[4]), new ListViewItem(new string[] { "All games:", Shared.SizeSuffix(MemoryStats.AllGamesSize) }, listView1.Groups[4]), new ListViewItem(new string[] { "Non multiboot games:", Shared.SizeSuffix(MemoryStats.NonMultibootGamesSize) }, listView1.Groups[4]), new ListViewItem(new string[] { "Extra files:", Shared.SizeSuffix(MemoryStats.ExtraFilesSize) }, listView1.Groups[4]), // console settings new ListViewItem(new string[] { "USB host enabled", ConfigIni.Instance.UsbHost ? Resources.Yes : Resources.No }, listView1.Groups[5]), new ListViewItem(new string[] { "Fontfix enabled", ConfigIni.Instance.UseFont ? Resources.Yes : Resources.No }, listView1.Groups[5]), }); // collections sizes foreach (var pair in MemoryStats.Collections) { listView1.Items.Add( new ListViewItem(new string[] { MainForm.GetConsoleTypeName(pair.Key) + " games:", Shared.SizeSuffix(pair.Value) }, listView1.Groups[4])); } } } else { listView1.Items.AddRange(new ListViewItem[] { new ListViewItem(new string[] { "Connected:", connected }, listView1.Groups[1]), }); } }