From 57ff7a00c9e3824bfaf44201b9fc78c201018816 Mon Sep 17 00:00:00 2001 From: Manu <52102823+Manu098vm@users.noreply.github.com> Date: Fri, 24 Feb 2023 16:29:59 +0100 Subject: [PATCH] fix path handling in non-windows OS --- SwitchGiftDataManager.CommandLine/Program.cs | 30 ++++++++++--------- .../Classes/BCATManager/BCATManager.cs | 2 +- SwitchGiftDataManager.WinForm/SaveWindow.cs | 30 ++++++++++--------- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/SwitchGiftDataManager.CommandLine/Program.cs b/SwitchGiftDataManager.CommandLine/Program.cs index 4e25952..4073f25 100644 --- a/SwitchGiftDataManager.CommandLine/Program.cs +++ b/SwitchGiftDataManager.CommandLine/Program.cs @@ -91,7 +91,7 @@ namespace SwitchGiftDataManager.CommandLine return; } - destpath = $"{destpath}\\Forged_BCAT_{game}"; + destpath = Path.Combine(destpath, $"Forged_BCAT_{game}"); CopyDirectory(sourcepath, destpath); if (opt == 1) @@ -100,15 +100,16 @@ namespace SwitchGiftDataManager.CommandLine { var wcdata = bcat.ConcatenateFiles(); var metadata = bcat.ForgeMetaInfo(wcdata.ToArray()); - var metadatapath = $"{destpath}\\directories\\{bcat.GetDefaultBcatFolderName()}"; - var wcpath = $"{metadatapath}\\files"; + var metadatapath = Path.Combine(destpath, "directories"); + metadatapath = Path.Combine(metadatapath, bcat.GetDefaultBcatFolderName()); + var wcpath = Path.Combine(metadatapath, "files"); if (Directory.Exists(metadatapath)) DeleteFilesAndDirectory(metadatapath); Directory.CreateDirectory(wcpath); - File.WriteAllBytes($"{metadatapath}\\files.meta", metadata.ToArray()); - File.WriteAllBytes($"{wcpath}\\{bcat.GetDefaultBcatFileName()}", wcdata.ToArray()); + File.WriteAllBytes(Path.Combine(metadatapath, "files.meta"), metadata.ToArray()); + File.WriteAllBytes(Path.Combine(wcpath, bcat.GetDefaultBcatFileName()), wcdata.ToArray()); Log("Done. Press any key to exit..."); Console.ReadKey(); } @@ -121,14 +122,15 @@ namespace SwitchGiftDataManager.CommandLine else { var metadata = bcat.ForgeMetaInfo(); - var metadatapath = $"{destpath}\\directories\\{bcat.GetDefaultBcatFolderName()}"; - var wcspath = $"{metadatapath}\\files"; + var metadatapath = Path.Combine(destpath, "directories"); + metadatapath = Path.Combine(metadatapath, bcat.GetDefaultBcatFolderName()); + var wcspath = Path.Combine(metadatapath, "files"); if (Directory.Exists(metadatapath)) DeleteFilesAndDirectory(metadatapath); Directory.CreateDirectory(wcspath); - File.WriteAllBytes($"{metadatapath}\\files.meta", metadata.ToArray()); + File.WriteAllBytes(Path.Combine(metadatapath, "files.meta"), metadata.ToArray()); if (bcat.TrySaveAllWondercards(wcspath)) { Log("Done. Press any key to exit..."); @@ -160,22 +162,22 @@ namespace SwitchGiftDataManager.CommandLine if (string.IsNullOrWhiteSpace(path)) return false; - if (!Directory.Exists($"{path}\\directories")) + if (!Directory.Exists(Path.Combine(path, "directories"))) return false; - if (!File.Exists($"{path}\\directories.meta")) + if (!File.Exists(Path.Combine(path, "directories.meta"))) return false; - if (!File.Exists($"{path}\\etag.bin")) + if (!File.Exists(Path.Combine(path, "etag.bin"))) return false; - if (!File.Exists($"{path}\\list.msgpack")) + if (!File.Exists(Path.Combine(path, "list.msgpack"))) return false; - if (!File.Exists($"{path}\\na_required")) + if (!File.Exists(Path.Combine(path, "na_required"))) return false; - if (!File.Exists($"{path}\\passphrase.bin")) + if (!File.Exists(Path.Combine(path, "passphrase.bin"))) return false; return true; diff --git a/SwitchGiftDataManager.Core/Classes/BCATManager/BCATManager.cs b/SwitchGiftDataManager.Core/Classes/BCATManager/BCATManager.cs index fa3034c..7dc663d 100644 --- a/SwitchGiftDataManager.Core/Classes/BCATManager/BCATManager.cs +++ b/SwitchGiftDataManager.Core/Classes/BCATManager/BCATManager.cs @@ -256,7 +256,7 @@ namespace SwitchGiftDataManager.Core try { var wc = WCList!.ElementAt(index); - File.WriteAllBytes($"{path}\\{ForgeWcFileName(wc)}", wc.Data!); + File.WriteAllBytes(Path.Combine(path, ForgeWcFileName(wc)), wc.Data!); return true; } catch (Exception) diff --git a/SwitchGiftDataManager.WinForm/SaveWindow.cs b/SwitchGiftDataManager.WinForm/SaveWindow.cs index 92f113d..084deed 100644 --- a/SwitchGiftDataManager.WinForm/SaveWindow.cs +++ b/SwitchGiftDataManager.WinForm/SaveWindow.cs @@ -60,7 +60,7 @@ namespace SwitchGiftDataManager.WinForm return; } - var path = $"{TxtDestPath.Text}\\Forged_BCAT_{Game}"; + var path = Path.Combine(TxtDestPath.Text, $"Forged_BCAT_{Game}"); CopyDirectory(TxtSourcePath.Text, path); if (RadioMultiple.Checked) @@ -69,15 +69,16 @@ namespace SwitchGiftDataManager.WinForm { var wcdata = Package.ConcatenateFiles(); var metadata = Package.ForgeMetaInfo(wcdata.ToArray()); - var metadatapath = $"{path}\\directories\\{Package.GetDefaultBcatFolderName()}"; - var wcpath = $"{metadatapath}\\files"; + var metadatapath = Path.Combine(path, "directories"); + metadatapath = Path.Combine(metadatapath, Package.GetDefaultBcatFolderName()); + var wcpath = Path.Combine(metadatapath, "files"); if (Directory.Exists(metadatapath)) DeleteFilesAndDirectory(metadatapath); Directory.CreateDirectory(wcpath); - File.WriteAllBytes($"{metadatapath}\\files.meta", metadata.ToArray()); - File.WriteAllBytes($"{wcpath}\\{Package.GetDefaultBcatFileName()}", wcdata.ToArray()); + File.WriteAllBytes(Path.Combine(metadatapath, "files.meta"), metadata.ToArray()); + File.WriteAllBytes(Path.Combine(wcpath, Package.GetDefaultBcatFileName()), wcdata.ToArray()); MessageBox.Show("Done"); this.Close(); } @@ -90,14 +91,15 @@ namespace SwitchGiftDataManager.WinForm else { var metadata = Package.ForgeMetaInfo(); - var metadatapath = $"{path}\\directories\\{Package.GetDefaultBcatFolderName()}"; - var wcspath = $"{metadatapath}\\files"; + var metadatapath = Path.Combine(path, "directories"); + metadatapath = Path.Combine(metadatapath, Package.GetDefaultBcatFolderName()); + var wcspath = Path.Combine(metadatapath, "files"); if (Directory.Exists(metadatapath)) DeleteFilesAndDirectory(metadatapath); Directory.CreateDirectory(wcspath); - File.WriteAllBytes($"{metadatapath}\\files.meta", metadata.ToArray()); + File.WriteAllBytes(Path.Combine(metadatapath, "files.meta"), metadata.ToArray()); if (Package.TrySaveAllWondercards(wcspath)) { MessageBox.Show("Done."); @@ -116,22 +118,22 @@ namespace SwitchGiftDataManager.WinForm if (string.IsNullOrWhiteSpace(path)) return false; - if (!Directory.Exists($"{path}\\directories")) + if (!Directory.Exists(Path.Combine(path, "directories"))) return false; - if (!File.Exists($"{path}\\directories.meta")) + if (!File.Exists(Path.Combine(path, "directories.meta"))) return false; - if (!File.Exists($"{path}\\etag.bin")) + if (!File.Exists(Path.Combine(path, "etag.bin"))) return false; - if (!File.Exists($"{path}\\list.msgpack")) + if (!File.Exists(Path.Combine(path, "list.msgpack"))) return false; - if (!File.Exists($"{path}\\na_required")) + if (!File.Exists(Path.Combine(path, "na_required"))) return false; - if (!File.Exists($"{path}\\passphrase.bin")) + if (!File.Exists(Path.Combine(path, "passphrase.bin"))) return false; return true;