aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Main/OS/Win95/Win95Apps
diff options
context:
space:
mode:
authorAlex-TIMEHACK <[email protected]>2017-08-18 21:56:48 +0100
committerAlex-TIMEHACK <[email protected]>2017-08-18 21:56:48 +0100
commitbffcb720f811623015ed4795032e5c57d1064c8a (patch)
tree88c5ccc093202a0d07c7c5196fa259f22f53d050 /TimeHACK.Main/OS/Win95/Win95Apps
parent943b4dcb5fa597264f13f2d0cfa305f4dd542dbe (diff)
downloadhistacom2-bffcb720f811623015ed4795032e5c57d1064c8a.tar.gz
histacom2-bffcb720f811623015ed4795032e5c57d1064c8a.tar.bz2
histacom2-bffcb720f811623015ed4795032e5c57d1064c8a.zip
Fixed the Rename and Delete
Diffstat (limited to 'TimeHACK.Main/OS/Win95/Win95Apps')
-rw-r--r--TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs132
1 files changed, 107 insertions, 25 deletions
diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
index 151dfd5..80f48dd 100644
--- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
+++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
@@ -124,7 +124,8 @@ namespace TimeHACK.OS.Win95.Win95Apps
private void RefreshAll()
{
- //try {
+ //try
+ //{
this.mainView.Items.Clear();
foreach (string str in Directory.GetDirectories(CurrentDirectory))
@@ -631,9 +632,7 @@ namespace TimeHACK.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)
@@ -738,10 +737,50 @@ namespace TimeHACK.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
{
@@ -782,37 +821,80 @@ namespace TimeHACK.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));
+
+ // 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);
- File.Copy((string)mainView.FocusedItem.Tag, Path.Combine(CurrentDirectory, setText));
- File.Delete((string)mainView.FocusedItem.Tag);
+ 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)