/// <summary> /// Gibt die Größendaten zurück /// !In einem zusätzlichen Thread ausführen, um das Programm nicht zu behindern /// </summary> private void GetFolderSizeThisFolder() { try { DirectoryInfo dir = new DirectoryInfo(dirpath); //Es ist eine DirectoryInfo notwendig for (int i = 0; i < dir.GetDirectories().Length; i++) { try { DirectoryInfo d = dir.GetDirectories()[i]; ea.Invoke(d.Name, "Folder", d.LastWriteTime.ToString(), DirectoryFunctions.GetFolderSize(d.FullName)); } catch { } } for (int i = 0; i < dir.GetFiles().Length; i++) { try { FileInfo f = dir.GetFiles()[i]; ea.Invoke(f.Name, "File", f.LastWriteTime.ToString(), f.Length); } catch { } } } catch (UnauthorizedAccessException ex) { System.Diagnostics.Debug.Print("Der Zugriff auf den Ordner '" + dirpath + "' ist wegen fehlender Berechtigungen verweigert"); } catch (Exception ex) { System.Diagnostics.Debug.Print("Ein unbekannter Fehler ist beim Zugriff auf '" + dirpath + "' aufgetreten"); } }
private MacroExpander(ExpansionSettings settings, ILogger logger) { Settings = settings; Logger = logger; _rewriteDirectives = settings.GameDataPaths?.SelectMany(LoadRewriteDirectives)?.ToArray() ?? Array.Empty <RewriteDirective>(); _directoryFunctions = new DirectoryFunctions(settings.Directory, Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); }
private void ShowSharedFolders() { for (int i = 0; i < tvnfs.Nodes[0].Nodes.Count; i++) { List <string> networkfolders = LocalNetworkFunctions.GetListOfSharedFolders(LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text)); foreach (string entry in networkfolders) { if (entry.Contains("ERROR") == false) { try { TreeNode n = new TreeNode(entry); n.ImageIndex = 2; n.SelectedImageIndex = 2; tvnfs.Nodes[0].Nodes[i].Nodes.Add(n); } catch { } } else { System.Diagnostics.Debug.Print("Fehler beim Zugriff auf Netzwerk-Ordner"); System.Diagnostics.Debug.Print("IP: " + LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text)); System.Diagnostics.Debug.Print("PC-Name: " + tvnfs.Nodes[0].Nodes[i].Text); System.Diagnostics.Debug.Print("Error-Code: " + entry.Substring(entry.IndexOf("=") + 1)); //Anhand der Message den Fehler anzeigen if (entry.Substring(entry.IndexOf("=") + 1) == "5") { System.Diagnostics.Debug.Print("Fehler: Access Denied"); } else if (entry.Substring(entry.IndexOf("=") + 1) == "53") { System.Diagnostics.Debug.Print("Fehler: Bad Network Path"); } } } //Der nächste Schritt ist zu scannen, welche Freigaben noch Unterordner hat, auf die zugegriffen werden kann. //wenn dies der Fall ist, soll ein Temp-Node angelegt werden if (tvnfs.Nodes[0].Nodes[i].Nodes.Count > 0) { for (int j = 0; j < tvnfs.Nodes[0].Nodes[i].Nodes.Count; j++) { //Der Netzwerkpfad string p = @"\\" + LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text) + @"\" + tvnfs.Nodes[0].Nodes[i].Nodes[j].Text; if (DirectoryFunctions.HasSubDirectories(p)) { tvnfs.Nodes[0].Nodes[i].Nodes[j].Nodes.Add(TREENODE_DIRSUB); } } } } }
public void LoadDrives() { //Erstmal müssen alle Nodes aus der TreeView entfernt werden, bevor die Drives angezeigt werden können tvfilesystem.Nodes.Clear(); tvfilesystem.ImageList.Images.Clear(); //Die Standardicons aus der Klasse 'FilesystemIcons' einfügen, damit diese nicht ständig nachgeladen werden müssen imglist.Images.Add(FilesystemIcons.ICON_DIRECTORY_16x); //Index 0 //Nun werden alle Drives geladen und angezeigt foreach (DriveInfo drive in DriveInfo.GetDrives()) { //Jetzt muss geschaut werden, ob der Drive aktiv ist oder nicht und danach entschieden werden if (drive.IsReady) { //Icon ermitteln imglist.Images.Add(FilesystemIcons.GetSmallIcon(string.Concat(drive.Name.Substring(0, 2) + DS))); //TreeNode erstellen und hinzufügen TreeNode n = new TreeNode(string.Concat(drive.Name.Substring(0, 2), " ", DriveFunctions.GetVolumeLabel(Convert.ToChar(drive.Name.Substring(0, 1))))); n.ImageIndex = tvfilesystem.ImageList.Images.Count - 1; n.SelectedImageIndex = tvfilesystem.ImageList.Images.Count - 1; tvfilesystem.Nodes.Add(n); //Prüfen, ob das Drive über Ordner verfügt if (DirectoryFunctions.HasSubDirectories(drive.Name.Substring(0, 2) + DS)) { //Wenn es über Ordner verfügt, soll der tenporäre TreeNode geadded werden //Das ist dann für das generieren der Subnodes notwendig tvfilesystem.Nodes[tvfilesystem.Nodes.Count - 1].Nodes.Add(TREENODE_DIRSUB); } } else { //TreeNode erstellen und hinzufügen imglist.Images.Add(FilesystemIcons.GetSmallIcon(string.Concat(drive.Name.Substring(0, 2) + DS))); TreeNode n = new TreeNode(string.Concat(drive.Name.Substring(0, 2), DS)); n.ImageIndex = tvfilesystem.ImageList.Images.Count - 1; n.SelectedImageIndex = tvfilesystem.ImageList.Images.Count - 1; tvfilesystem.Nodes.Add(n); } } }
private void LoadLastData() { //Maximale Bytezahl berechnen long gesbyte = 0; for (int i = 0; i < dt.Rows.Count; i++) { gesbyte += Convert.ToInt64(dt.Rows[i].ItemArray[3].ToString()); } //Einträge in der DataTable nach Size sortieren DataView v = dt.DefaultView; v.Sort = "Size DESC"; //ListView füllen ImageList img = new ImageList(); img.ColorDepth = ColorDepth.Depth32Bit; img.ImageSize = new Size(16, 16); lvinhalt.SmallImageList = img; for (int i = 0; i < dt.Rows.Count; i++) { long size = Convert.ToInt64(v[i].Row.ItemArray[3].ToString()); ListViewItem lvi = new ListViewItem(v[i].Row.ItemArray[0].ToString()); lvi.SubItems.Add(v[i].Row.ItemArray[2].ToString()); lvi.SubItems.Add(ExtraFunctions.GetFileSizeKB(Convert.ToDouble(size))); //Grafik einblenden if (v[i].Row.ItemArray[1].ToString() == "Folder") { img.Images.Add(FilesystemIcons.GetSmallIcon(DirectoryFunctions.CorrectPath(dirpath))); } else { FileInfo f = new FileInfo(DirectoryFunctions.CorrectPath(dirpath) + v[i].Row.ItemArray[0].ToString()); try { if (f.Extension == ".lnk") { img.Images.Add(FilesystemIcons.GetSmallIcon(FileFunctions.GetShortcutPath(f.FullName))); } else { img.Images.Add(FilesystemIcons.GetSmallIcon(f.FullName)); } } catch { img.Images.Add(FilesystemIcons.GetIconByExtension_x16(f.Extension)); } } lvi.ImageIndex = img.Images.Count - 1; lvi.SubItems.Add(Math.Round(Convert.ToDouble(size * 100 / gesbyte), 2).ToString() + "%"); lvinhalt.Items.Add(lvi); } lbsize.Text = ExtraFunctions.UnitChange(Convert.ToDouble(gesbyte)); tabPage2.Controls.RemoveAt(0); }
/// <summary> /// Prüft, ob die Drives noch vorhanden sind. Wenn nicht, sollen diese vernichtet werden /// </summary> private void Thread_CheckDrives() { //Liste mit allen Drives laden string[] driveold = new string[tvfilesystem.Nodes.Count]; for (int i = 0; i < tvfilesystem.Nodes.Count; i++) { driveold[i] = tvfilesystem.Nodes[i].Text; } //Alle Drives jetzt prüfen bool isfound = false; foreach (DriveInfo drvinfo in DriveInfo.GetDrives()) { isfound = false; //jetzt wird überprüft, ob der Eintrag gefunden wurde for (int i = 0; i < driveold.Length; i++) { //Wenn das Laufwerk gefunden wurde if (driveold[i] != "") { if (driveold[i].Substring(0, 1) == drvinfo.Name.Substring(0, 1)) { driveold[i] = ""; isfound = true; break; //For-Schleife kann verlassen werden } } } if (isfound == false) //wenn das Laufwerk nicht gefunden wurde, dann soll es hinzugefügt werden { //Jetzt muss geschaut werden, ob der Drive aktiv ist oder nicht und danach entschieden werden if (drvinfo.IsReady) { //Icon ermitteln imglist.Images.Add(FilesystemIcons.GetSmallIcon(string.Concat(drvinfo.Name.Substring(0, 2) + DS))); //TreeNode erstellen und hinzufügen TreeNode n = new TreeNode(string.Concat(drvinfo.Name.Substring(0, 2), " ", DriveFunctions.GetVolumeLabel(Convert.ToChar(drvinfo.Name.Substring(0, 1))))); n.ImageIndex = tvfilesystem.ImageList.Images.Count - 1; n.SelectedImageIndex = tvfilesystem.ImageList.Images.Count - 1; tvfilesystem.Nodes.Add(n); //Prüfen, ob das Drive über Ordner verfügt if (DirectoryFunctions.HasSubDirectories(drvinfo.Name.Substring(0, 2) + DS)) { //Wenn es über Ordner verfügt, soll der tenporäre TreeNode geadded werden //Das ist dann für das generieren der Subnodes notwendig tvfilesystem.Nodes[tvfilesystem.Nodes.Count - 1].Nodes.Add(TREENODE_DIRSUB); } } else { //TreeNode erstellen und hinzufügen imglist.Images.Add(FilesystemIcons.GetSmallIcon(string.Concat(drvinfo.Name.Substring(0, 2) + DS))); TreeNode n = new TreeNode(string.Concat(drvinfo.Name.Substring(0, 2), DS)); n.ImageIndex = tvfilesystem.ImageList.Images.Count - 1; n.SelectedImageIndex = tvfilesystem.ImageList.Images.Count - 1; tvfilesystem.Nodes.Add(n); } } } //Prüfen, ob noch Einträge in dem Array nicht geleert wurden. Wenn welche gefunden wurden, müssen diese vernichtet werden for (int i = driveold.Length; i > 0; i--) { if (driveold[i - 1] != "") //Wenn das laufwerk in der Liste noch da ist, aber nicht mehr da ist, wird es gelöscht { tvfilesystem.Nodes.RemoveAt(i - 1); } } }