diff options
Diffstat (limited to 'Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs')
| -rw-r--r-- | Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs | 157 |
1 files changed, 124 insertions, 33 deletions
diff --git a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs index a01d044..e205283 100644 --- a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs +++ b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs @@ -65,14 +65,15 @@ namespace Histacom2.OS.Win95.Win95Apps Properties.Resources.WinClassicFolder, Properties.Resources.WinClassicApp, // 10 Properties.Resources.WinClassicSetup, - Properties.Resources.WinClassicNotepad, + Properties.Resources.WinClassicTextFile, Properties.Resources.WinClassicCalcBig, Properties.Resources.WinClassicNotepadBig, Properties.Resources.WinClassicRegedit, // 15 Properties.Resources.WinClassicWordpad, - Properties.Resources.TimeDistorter1, + Properties.Resources.TimeDistorter1, Properties.Resources.WinClassicGTN, - Properties.Resources.WinClassicFTP }); + Properties.Resources.WinClassicFTP, + Properties.Resources.WinClassicRtfFile}); program.BringToFront(); @@ -126,7 +127,8 @@ namespace Histacom2.OS.Win95.Win95Apps private void RefreshAll() { - //try { + //try + //{ this.mainView.Items.Clear(); foreach (string str in Directory.GetDirectories(CurrentDirectory)) @@ -140,10 +142,10 @@ namespace Histacom2.OS.Win95.Win95Apps { ListViewItem itm; - if (IsFileOpenDialog == true || IsFileSaveDialog == true) + if (IsFileOpenDialog || IsFileSaveDialog) { if (!(Path.GetFileName(str) == "_data.info")) - { + { if (new FileInfo(str).Extension == onlyViewExtension) { itm = this.mainView.Items.Add(Path.GetFileName(str)); @@ -576,13 +578,16 @@ namespace Histacom2.OS.Win95.Win95Apps { try { - if (new DirectoryInfo((string)mainView.FocusedItem.Tag).Extension == null || new DirectoryInfo((string)mainView.FocusedItem.Tag).Extension == "") + if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text))) { // If it isn't a file - GoToDir(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)); + if (mainView.FocusedItem.Text == "C:") + GoToDir(Path.Combine(CurrentDirectory, "CDrive")); + else + GoToDir(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)); } else { // If it is a file - if (IsFileOpenDialog == true || IsFileSaveDialog == true) + if (IsFileOpenDialog || IsFileSaveDialog) { if (new FileInfo(Path.Combine(CurrentDirectory, txtSave.Text)).Extension == onlyViewExtension) { @@ -600,9 +605,7 @@ namespace Histacom2.OS.Win95.Win95Apps OpenFile(mainView.FocusedItem.Tag.ToString()); } } - } catch (Exception ex) { - MessageBox.Show(ex.Message); - } + } catch { /* TODO: Illegal operation */ } } void diskView_AfterSelect(object sender, EventArgs e) @@ -707,10 +710,50 @@ namespace Histacom2.OS.Win95.Win95Apps } else { - if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text))) Directory.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text), true); - else File.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)); + if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text))) + { + Directory.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text), true); + + // Remove the directory now from the _data.info + + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); + + foreach (THDirInfo dir in fsfi.SubDirs) + { + if (dir.Name == mainView.FocusedItem.Text) + { + // Delete it + + fsfi.SubDirs.Remove(dir); + } + } + + File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + } + else + { + File.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)); + + // Remove the file now from the _data.info + + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); + + foreach (THFileInfo file in fsfi.Files) + { + if (file.Name == mainView.FocusedItem.Text) + { + // Delete it + + fsfi.Files.Remove(file); + } + } + + File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + + } RefreshAll(); + RefreshTreeNode(); } } catch { @@ -751,37 +794,80 @@ namespace Histacom2.OS.Win95.Win95Apps private void mainView_AfterLabelEdit(object sender, LabelEditEventArgs e) { - string setText = e.Label; - if (setText == "") wm.StartInfobox95("Rename", "You must type a filename.", InfoboxType.Error, InfoboxButtons.OK); - else + try { - if (Directory.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new DirectoryInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK); + string setText = e.Label; + if (setText == "") wm.StartInfobox95("Rename", "You must type a filename.", InfoboxType.Error, InfoboxButtons.OK); else { - if (File.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new FileInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK); + if (Directory.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new DirectoryInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK); else { - if (Directory.Exists((string)mainView.FocusedItem.Tag)) + if (File.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new FileInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK); + else { - // It was a directory + if (Directory.Exists(Path.Combine(CurrentDirectory, OldLabelText))) + { + // It was a directory - Directory.Move((string)mainView.FocusedItem.Tag, Path.Combine(CurrentDirectory, setText)); + Directory.Move(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); - File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info")); - SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true); - } - else - { - // It was a file + File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info")); + SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true); + + // Rename the directory now in the _data.info + + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); + + foreach (THDirInfo dir in fsfi.SubDirs) + { + if (dir.Name == mainView.FocusedItem.Tag.ToString()) + { + // Rename it + THDirInfo oldDirInfo = dir; + oldDirInfo.Name = Path.Combine(CurrentDirectory, setText); + + fsfi.SubDirs.Remove(dir); + fsfi.SubDirs.Add(oldDirInfo); + } + } + + File.Delete(Path.Combine(CurrentDirectory, "_data.info")); + File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + } + else + { + // It was a file + + File.Copy(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); + File.Delete(Path.Combine(CurrentDirectory, OldLabelText)); - File.Copy((string)mainView.FocusedItem.Tag, Path.Combine(CurrentDirectory, setText)); - File.Delete((string)mainView.FocusedItem.Tag); + // Rename the file now in the _data.info + + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); + + foreach (THFileInfo file in fsfi.Files) + { + if (file.Name == mainView.FocusedItem.Tag.ToString()) + { + // Rename it + THFileInfo oldFileInfo = file; + oldFileInfo.Name = Path.Combine(CurrentDirectory, setText); + + fsfi.Files.Remove(file); + fsfi.Files.Add(oldFileInfo); + } + } + + File.Delete(Path.Combine(CurrentDirectory, "_data.info")); + File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + } } } } - } - RefreshAll(); - RefreshTreeNode(); + RefreshAll(); + RefreshTreeNode(); + } catch { } } private TreeNode[] createSubDirNodes(DirectoryInfo folder) @@ -952,5 +1038,10 @@ namespace Histacom2.OS.Win95.Win95Apps { } + + private void TextDocumentToolStripMenuItem_Click(object sender, EventArgs e) + { + + } } } |
