diff --git a/DiscImageChef.Core/Remote.cs b/DiscImageChef.Core/Remote.cs
index 08a0d756b..50767d374 100644
--- a/DiscImageChef.Core/Remote.cs
+++ b/DiscImageChef.Core/Remote.cs
@@ -30,6 +30,7 @@
// Copyright © 2011-2018 Natalia Portillo
// ****************************************************************************/
+using System;
using System.IO;
using System.Net;
using System.Threading;
@@ -71,7 +72,7 @@ namespace DiscImageChef.Core
if(((HttpWebResponse)response).StatusCode != HttpStatusCode.OK) return;
Stream data = response.GetResponseStream();
- StreamReader reader = new StreamReader(data);
+ StreamReader reader = new StreamReader(data ?? throw new InvalidOperationException());
string responseFromServer = reader.ReadToEnd();
data.Close();
diff --git a/DiscImageChef.Core/Statistics.cs b/DiscImageChef.Core/Statistics.cs
index 16ca5872f..1ad2c2db3 100644
--- a/DiscImageChef.Core/Statistics.cs
+++ b/DiscImageChef.Core/Statistics.cs
@@ -209,7 +209,7 @@ namespace DiscImageChef.Core
if(((HttpWebResponse)response).StatusCode != HttpStatusCode.OK) return;
Stream data = response.GetResponseStream();
- StreamReader reader = new StreamReader(data);
+ StreamReader reader = new StreamReader(data ?? throw new InvalidOperationException());
string responseFromServer = reader.ReadToEnd();
data.Close();
diff --git a/DiscImageChef.DiscImages/CDRDAO.cs b/DiscImageChef.DiscImages/CDRDAO.cs
index 6507a3bbe..e5a0df108 100644
--- a/DiscImageChef.DiscImages/CDRDAO.cs
+++ b/DiscImageChef.DiscImages/CDRDAO.cs
@@ -274,7 +274,7 @@ namespace DiscImageChef.DiscImages
{
line = tocStream.ReadLine();
- dm = dr.Match(line);
+ dm = dr.Match(line ?? throw new InvalidOperationException());
cm = cr.Match(line);
// Skip comments at start of file
@@ -390,7 +390,7 @@ namespace DiscImageChef.DiscImages
line++;
_line = tocStream.ReadLine();
- matchDiskType = regexDiskType.Match(_line);
+ matchDiskType = regexDiskType.Match(_line ?? throw new InvalidOperationException());
matchComment = regexComment.Match(_line);
// Skip comments at start of file
@@ -416,7 +416,7 @@ namespace DiscImageChef.DiscImages
line++;
_line = tocStream.ReadLine();
- matchComment = regexComment.Match(_line);
+ matchComment = regexComment.Match(_line ?? throw new ());
matchDiskType = regexDiskType.Match(_line);
matchMcn = regexMcn.Match(_line);
matchTrack = regexTrack.Match(_line);
diff --git a/DiscImageChef.DiscImages/CDRWin.cs b/DiscImageChef.DiscImages/CDRWin.cs
index 88ddce045..7930b3ffe 100644
--- a/DiscImageChef.DiscImages/CDRWin.cs
+++ b/DiscImageChef.DiscImages/CDRWin.cs
@@ -351,7 +351,7 @@ namespace DiscImageChef.DiscImages
Match tm;
// First line must be SESSION, REM, CATALOG, FILE or CDTEXTFILE.
- sm = sr.Match(_line);
+ sm = sr.Match(_line ?? throw new InvalidOperationException());
rm = rr.Match(_line);
cm = cr.Match(_line);
fm = fr.Match(_line);
diff --git a/DiscImageChef.DiscImages/CloneCD.cs b/DiscImageChef.DiscImages/CloneCD.cs
index e9a13e760..4858751f9 100644
--- a/DiscImageChef.DiscImages/CloneCD.cs
+++ b/DiscImageChef.DiscImages/CloneCD.cs
@@ -153,7 +153,7 @@ namespace DiscImageChef.DiscImages
Match hdm;
- hdm = hdr.Match(_line);
+ hdm = hdr.Match(_line ?? throw new InvalidOperationException());
return hdm.Success;
}
diff --git a/DiscImageChef.DiscImages/GDI.cs b/DiscImageChef.DiscImages/GDI.cs
index a74ba1192..8e319d824 100644
--- a/DiscImageChef.DiscImages/GDI.cs
+++ b/DiscImageChef.DiscImages/GDI.cs
@@ -167,7 +167,7 @@ namespace DiscImageChef.DiscImages
{
Regex regexTrack = new Regex(TRACK_REGEX);
- Match trackMatch = regexTrack.Match(_line);
+ Match trackMatch = regexTrack.Match(_line ?? throw new InvalidOperationException());
if(!trackMatch.Success) return false;
@@ -231,7 +231,7 @@ namespace DiscImageChef.DiscImages
}
else
{
- trackMatch = regexTrack.Match(_line);
+ trackMatch = regexTrack.Match(_line ?? throw new InvalidOperationException());
if(!trackMatch.Success)
throw new ImageNotSupportedException(string.Format("Unknown line \"{0}\" at line {1}",
diff --git a/DiscImageChef.Filesystems/CPM/Definitions.cs b/DiscImageChef.Filesystems/CPM/Definitions.cs
index 26c0f0e36..5e772a11b 100644
--- a/DiscImageChef.Filesystems/CPM/Definitions.cs
+++ b/DiscImageChef.Filesystems/CPM/Definitions.cs
@@ -50,7 +50,7 @@ namespace DiscImageChef.Filesystems.CPM
{
XmlReader defsReader =
XmlReader.Create(Assembly.GetExecutingAssembly()
- .GetManifestResourceStream("DiscImageChef.Filesystems.CPM.cpmdefs.xml"));
+ .GetManifestResourceStream("DiscImageChef.Filesystems.CPM.cpmdefs.xml") ?? throw new InvalidOperationException());
XmlSerializer defsSerializer = new XmlSerializer(typeof(CpmDefinitions));
definitions = (CpmDefinitions)defsSerializer.Deserialize(defsReader);
diff --git a/DiscImageChef.Filters/AppleDouble.cs b/DiscImageChef.Filters/AppleDouble.cs
index d0875bb35..51c2a3023 100644
--- a/DiscImageChef.Filters/AppleDouble.cs
+++ b/DiscImageChef.Filters/AppleDouble.cs
@@ -256,11 +256,11 @@ namespace DiscImageChef.Filters
string filenameNoExt = Path.GetFileNameWithoutExtension(path);
string parentFolder = Path.GetDirectoryName(path);
- ProDosAppleDouble = Path.Combine(parentFolder, "R." + filename);
+ ProDosAppleDouble = Path.Combine(parentFolder ?? throw new InvalidOperationException(), "R." + filename);
UNIXAppleDouble = Path.Combine(parentFolder, "%" + filename);
DOSAppleDouble = Path.Combine(parentFolder, filenameNoExt + ".ADF");
DOSAppleDoubleLower = Path.Combine(parentFolder, filenameNoExt + ".adf");
- NetatalkAppleDouble = Path.Combine(parentFolder, ".AppleDouble", filename);
+ NetatalkAppleDouble = Path.Combine(parentFolder, ".AppleDouble", filename ?? throw new InvalidOperationException());
DAVEAppleDouble = Path.Combine(parentFolder, "resource.frk", filename);
OSXAppleDouble = Path.Combine(parentFolder, "._" + filename);
UnArAppleDouble = Path.Combine(parentFolder, filename + ".rsrc");
@@ -426,11 +426,11 @@ namespace DiscImageChef.Filters
string filenameNoExt = Path.GetFileNameWithoutExtension(path);
string parentFolder = Path.GetDirectoryName(path);
- ProDosAppleDouble = Path.Combine(parentFolder, "R." + filename);
+ ProDosAppleDouble = Path.Combine(parentFolder ?? throw new InvalidOperationException(), "R." + filename);
UNIXAppleDouble = Path.Combine(parentFolder, "%" + filename);
DOSAppleDouble = Path.Combine(parentFolder, filenameNoExt + ".ADF");
DOSAppleDoubleLower = Path.Combine(parentFolder, filenameNoExt + ".adf");
- NetatalkAppleDouble = Path.Combine(parentFolder, ".AppleDouble", filename);
+ NetatalkAppleDouble = Path.Combine(parentFolder, ".AppleDouble", filename ?? throw new InvalidOperationException());
DAVEAppleDouble = Path.Combine(parentFolder, "resource.frk", filename);
OSXAppleDouble = Path.Combine(parentFolder, "._" + filename);
UnArAppleDouble = Path.Combine(parentFolder, filename + ".rsrc");
diff --git a/DiscImageChef.Filters/PCExchange.cs b/DiscImageChef.Filters/PCExchange.cs
index 536cebd8c..4641281fc 100644
--- a/DiscImageChef.Filters/PCExchange.cs
+++ b/DiscImageChef.Filters/PCExchange.cs
@@ -200,7 +200,7 @@ namespace DiscImageChef.Filters
{
string parentFolder = Path.GetDirectoryName(path);
- if(!File.Exists(Path.Combine(parentFolder, FinderInfo))) return false;
+ if(!File.Exists(Path.Combine(parentFolder ?? throw new InvalidOperationException(), FinderInfo))) return false;
if(!Directory.Exists(Path.Combine(parentFolder, Resources))) return false;
@@ -230,7 +230,7 @@ namespace DiscImageChef.Filters
if(baseFilename != macName && baseFilename != dosName && baseFilename != dosNameLow) continue;
- dataFound |= File.Exists(Path.Combine(parentFolder, macName)) ||
+ dataFound |= File.Exists(Path.Combine(parentFolder, macName ?? throw new InvalidOperationException())) ||
File.Exists(Path.Combine(parentFolder, dosName)) ||
File.Exists(Path.Combine(parentFolder, dosNameLow));
@@ -266,7 +266,7 @@ namespace DiscImageChef.Filters
string baseFilename = Path.GetFileName(path);
FileStream finderDatStream =
- new FileStream(Path.Combine(parentFolder, FinderInfo), FileMode.Open, FileAccess.Read);
+ new FileStream(Path.Combine(parentFolder ?? throw new InvalidOperationException(), FinderInfo), FileMode.Open, FileAccess.Read);
while(finderDatStream.Position + 0x5C <= finderDatStream.Length)
{
@@ -285,7 +285,7 @@ namespace DiscImageChef.Filters
if(baseFilename != macName && baseFilename != dosName && baseFilename != dosNameLow) continue;
- if(File.Exists(Path.Combine(parentFolder, macName))) dataPath = Path.Combine(parentFolder, macName);
+ if(File.Exists(Path.Combine(parentFolder, macName ?? throw new InvalidOperationException()))) dataPath = Path.Combine(parentFolder, macName);
else if(File.Exists(Path.Combine(parentFolder, dosName)))
dataPath = Path.Combine(parentFolder, dosName);
else if(File.Exists(Path.Combine(parentFolder, dosNameLow)))
@@ -304,8 +304,8 @@ namespace DiscImageChef.Filters
break;
}
- dataLen = new FileInfo(dataPath).Length;
- rsrcLen = new FileInfo(rsrcPath).Length;
+ dataLen = new FileInfo(dataPath ?? throw new InvalidOperationException()).Length;
+ rsrcLen = new FileInfo(rsrcPath ?? throw new InvalidOperationException()).Length;
basePath = path;
opened = true;
diff --git a/DiscImageChef.Server/Controllers/UploadReportController.cs b/DiscImageChef.Server/Controllers/UploadReportController.cs
index 15e8e39bf..9f8d7b318 100644
--- a/DiscImageChef.Server/Controllers/UploadReportController.cs
+++ b/DiscImageChef.Server/Controllers/UploadReportController.cs
@@ -74,10 +74,10 @@ namespace DiscImageChef.Server.Controllers
Random rng = new Random();
string filename = string.Format("NewReport_{0:yyyyMMddHHmmssfff}_{1}.xml", DateTime.UtcNow, rng.Next());
- while(File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "Upload", filename))) filename = string.Format("NewReport_{0:yyyyMMddHHmmssfff}_{1}.xml", DateTime.UtcNow, rng.Next());
+ while(File.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Upload", filename))) filename = string.Format("NewReport_{0:yyyyMMddHHmmssfff}_{1}.xml", DateTime.UtcNow, rng.Next());
FileStream newFile =
- new FileStream(Path.Combine(HostingEnvironment.MapPath("~"), "Upload", filename),
+ new FileStream(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Upload", filename),
FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None);
xs.Serialize(newFile, newReport);
newFile.Close();
diff --git a/DiscImageChef.Server/Controllers/UploadStatsController.cs b/DiscImageChef.Server/Controllers/UploadStatsController.cs
index daf1c9233..9f89171a7 100644
--- a/DiscImageChef.Server/Controllers/UploadStatsController.cs
+++ b/DiscImageChef.Server/Controllers/UploadStatsController.cs
@@ -76,7 +76,7 @@ namespace DiscImageChef.Server.Controllers
}
FileStream fs =
- WaitForFile(Path.Combine(HostingEnvironment.MapPath("~"), "Statistics", "Statistics.xml"),
+ WaitForFile(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Statistics", "Statistics.xml"),
FileMode.Open, FileAccess.ReadWrite, FileShare.None);
if(fs == null)
diff --git a/DiscImageChef.Server/Default.aspx.cs b/DiscImageChef.Server/Default.aspx.cs
index e5940e8e2..ebf7f2895 100644
--- a/DiscImageChef.Server/Default.aspx.cs
+++ b/DiscImageChef.Server/Default.aspx.cs
@@ -45,7 +45,7 @@ namespace DiscImageChef.Server
{
MarkdownContent mkdown = new MarkdownContent();
StreamReader sr =
- new StreamReader(Path.Combine(HostingEnvironment.MapPath("~"), "docs", "README.md"));
+ new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "docs", "README.md"));
string mdcontent = sr.ReadToEnd();
sr.Close();
diff --git a/DiscImageChef.Server/Statistics.aspx.cs b/DiscImageChef.Server/Statistics.aspx.cs
index 7ce26a339..888031aad 100644
--- a/DiscImageChef.Server/Statistics.aspx.cs
+++ b/DiscImageChef.Server/Statistics.aspx.cs
@@ -77,12 +77,12 @@ namespace DiscImageChef.Server
try
{
- if(!File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "Statistics",
+ if(!File.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Statistics",
"Statistics.xml")))
{
#if DEBUG
content.InnerHtml = string.Format("Sorry, cannot load data file \"{0}\"",
- Path.Combine(HostingEnvironment.MapPath("~"),
+ Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
"Statistics", "Statistics.xml"));
#else
content.InnerHtml = "Sorry, cannot load data file";
@@ -94,7 +94,7 @@ namespace DiscImageChef.Server
XmlSerializer xs = new XmlSerializer(statistics.GetType());
FileStream fs =
- WaitForFile(Path.Combine(HostingEnvironment.MapPath("~"), "Statistics", "Statistics.xml"),
+ WaitForFile(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Statistics", "Statistics.xml"),
FileMode.Open, FileAccess.Read, FileShare.Read);
statistics = (Stats)xs.Deserialize(fs);
fs.Close();
diff --git a/DiscImageChef.Server/ViewReport.aspx.cs b/DiscImageChef.Server/ViewReport.aspx.cs
index 8beb3ce0c..b648c5d53 100644
--- a/DiscImageChef.Server/ViewReport.aspx.cs
+++ b/DiscImageChef.Server/ViewReport.aspx.cs
@@ -82,7 +82,7 @@ namespace DiscImageChef.Server
else if(!string.IsNullOrWhiteSpace(model)) xmlFile = model + ".xml";
if(xmlFile == null ||
- !File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "Reports", xmlFile)))
+ !File.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Reports", xmlFile)))
{
content.InnerHtml = "Could not find the specified report";
return;
@@ -95,7 +95,7 @@ namespace DiscImageChef.Server
DeviceReport report = new DeviceReport();
XmlSerializer xs = new XmlSerializer(report.GetType());
StreamReader sr =
- new StreamReader(Path.Combine(HostingEnvironment.MapPath("~"), "Reports",
+ new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "Reports",
xmlFile));
report = (DeviceReport)xs.Deserialize(sr);
sr.Close();
@@ -567,10 +567,10 @@ namespace DiscImageChef.Server
vendorDescription = null;
productDescription = null;
- if(!File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "usb.ids"))) return;
+ if(!File.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "usb.ids"))) return;
StreamReader tocStream =
- new StreamReader(Path.Combine(HostingEnvironment.MapPath("~"), "usb.ids"));
+ new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(), "usb.ids"));
string _line;
bool inManufacturer = false;
ushort number;
diff --git a/DiscImageChef/Commands/CreateSidecar.cs b/DiscImageChef/Commands/CreateSidecar.cs
index 367c69f3f..7f843a5d4 100644
--- a/DiscImageChef/Commands/CreateSidecar.cs
+++ b/DiscImageChef/Commands/CreateSidecar.cs
@@ -133,7 +133,7 @@ namespace DiscImageChef.Commands
FileStream xmlFs =
new
- FileStream(Path.Combine(Path.GetDirectoryName(options.InputFile), Path.GetFileNameWithoutExtension(options.InputFile) + ".cicm.xml"),
+ FileStream(Path.Combine(Path.GetDirectoryName(options.InputFile) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(options.InputFile) + ".cicm.xml"),
FileMode.CreateNew);
XmlSerializer xmlSer =
@@ -169,7 +169,7 @@ namespace DiscImageChef.Commands
FileStream xmlFs =
new
- FileStream(Path.Combine(Path.GetDirectoryName(options.InputFile), Path.GetFileNameWithoutExtension(options.InputFile) + ".cicm.xml"),
+ FileStream(Path.Combine(Path.GetDirectoryName(options.InputFile) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(options.InputFile) + ".cicm.xml"),
FileMode.CreateNew);
XmlSerializer xmlSer =