diff --git a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs
index b0b6b336..477569ef 100644
--- a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs
+++ b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs
@@ -41,8 +41,21 @@ namespace SabreTools.Serialization.Deserializers
///
public virtual TModel? Deserialize(string? path)
{
- using var stream = PathProcessor.OpenStream(path);
- return Deserialize(stream);
+ try
+ {
+ // If we don't have a file
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
+ return default;
+
+ // Open the file for deserialization
+ using var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ return Deserialize(stream);
+ }
+ catch
+ {
+ // TODO: Handle logging the exception
+ return default;
+ }
}
#endregion
diff --git a/SabreTools.Serialization/Deserializers/ClrMamePro.cs b/SabreTools.Serialization/Deserializers/ClrMamePro.cs
index 5eddd48d..bb180ae3 100644
--- a/SabreTools.Serialization/Deserializers/ClrMamePro.cs
+++ b/SabreTools.Serialization/Deserializers/ClrMamePro.cs
@@ -42,8 +42,21 @@ namespace SabreTools.Serialization.Deserializers
///
public MetadataFile? Deserialize(string? path, bool quotes)
{
- using var stream = PathProcessor.OpenStream(path);
- return Deserialize(stream, quotes);
+ try
+ {
+ // If we don't have a file
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
+ return default;
+
+ // Open the file for deserialization
+ using var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ return Deserialize(stream, quotes);
+ }
+ catch
+ {
+ // TODO: Handle logging the exception
+ return default;
+ }
}
#endregion
diff --git a/SabreTools.Serialization/Deserializers/Hashfile.cs b/SabreTools.Serialization/Deserializers/Hashfile.cs
index 228350d4..e305cae1 100644
--- a/SabreTools.Serialization/Deserializers/Hashfile.cs
+++ b/SabreTools.Serialization/Deserializers/Hashfile.cs
@@ -41,8 +41,21 @@ namespace SabreTools.Serialization.Deserializers
///
public Models.Hashfile.Hashfile? Deserialize(string? path, HashType hash)
{
- using var stream = PathProcessor.OpenStream(path);
- return Deserialize(stream, hash);
+ try
+ {
+ // If we don't have a file
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
+ return default;
+
+ // Open the file for deserialization
+ using var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ return Deserialize(stream, hash);
+ }
+ catch
+ {
+ // TODO: Handle logging the exception
+ return default;
+ }
}
#endregion
diff --git a/SabreTools.Serialization/Deserializers/JsonFile.cs b/SabreTools.Serialization/Deserializers/JsonFile.cs
index d3676de5..190aeb0a 100644
--- a/SabreTools.Serialization/Deserializers/JsonFile.cs
+++ b/SabreTools.Serialization/Deserializers/JsonFile.cs
@@ -56,8 +56,21 @@ namespace SabreTools.Serialization.Deserializers
/// Filled object on success, null on error
public T? Deserialize(string? path, Encoding encoding)
{
- using var data = PathProcessor.OpenStream(path);
- return Deserialize(data, encoding);
+ try
+ {
+ // If we don't have a file
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
+ return default;
+
+ // Open the file for deserialization
+ using var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ return Deserialize(stream, encoding);
+ }
+ catch
+ {
+ // TODO: Handle logging the exception
+ return default;
+ }
}
#endregion
diff --git a/SabreTools.Serialization/Deserializers/PathProcessor.cs b/SabreTools.Serialization/Deserializers/PathProcessor.cs
deleted file mode 100644
index 09375d87..00000000
--- a/SabreTools.Serialization/Deserializers/PathProcessor.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System.IO;
-
-namespace SabreTools.Serialization.Deserializers
-{
- internal class PathProcessor
- {
- ///
- /// Opens a path as a stream in a safe manner, decompressing if needed
- ///
- /// Path to open as a stream
- /// Stream representing the file, null on error
- public static Stream? OpenStream(string? path)
- {
- try
- {
- // If we don't have a file
- if (string.IsNullOrEmpty(path) || !File.Exists(path))
- return null;
-
- // Open the file for deserialization
- return File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
- }
- catch
- {
- // TODO: Handle logging the exception
- return null;
- }
- }
- }
-}
diff --git a/SabreTools.Serialization/Deserializers/SeparatedValue.cs b/SabreTools.Serialization/Deserializers/SeparatedValue.cs
index 7924783b..0d206e38 100644
--- a/SabreTools.Serialization/Deserializers/SeparatedValue.cs
+++ b/SabreTools.Serialization/Deserializers/SeparatedValue.cs
@@ -49,8 +49,21 @@ namespace SabreTools.Serialization.Deserializers
///
public MetadataFile? Deserialize(string? path, char delim)
{
- using var stream = PathProcessor.OpenStream(path);
- return Deserialize(stream, delim);
+ try
+ {
+ // If we don't have a file
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
+ return default;
+
+ // Open the file for deserialization
+ using var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ return Deserialize(stream, delim);
+ }
+ catch
+ {
+ // TODO: Handle logging the exception
+ return default;
+ }
}
#endregion
diff --git a/SabreTools.Serialization/Printers/PortableExecutable.cs b/SabreTools.Serialization/Printers/PortableExecutable.cs
index f27552ee..30465b6e 100644
--- a/SabreTools.Serialization/Printers/PortableExecutable.cs
+++ b/SabreTools.Serialization/Printers/PortableExecutable.cs
@@ -588,7 +588,6 @@ namespace SabreTools.Serialization.Printers
return;
}
- // TODO: If more sections added, model this after the Export Table
for (int i = 0; i < table.DebugDirectoryTable.Length; i++)
{
var entry = table.DebugDirectoryTable[i];