diff --git a/System.IO.Abstractions.TestingHelpers/CommonExceptions.cs b/System.IO.Abstractions.TestingHelpers/CommonExceptions.cs index a65be57fc..c42acc894 100644 --- a/System.IO.Abstractions.TestingHelpers/CommonExceptions.cs +++ b/System.IO.Abstractions.TestingHelpers/CommonExceptions.cs @@ -55,7 +55,9 @@ public static ArgumentException IllegalCharactersInPath(string paramName = null) public static Exception InvalidUncPath(string paramName) => new ArgumentException(@"The UNC path should be of the form \\server\share.", paramName); - public static IOException ProcessCannotAccessFileInUse() => - new IOException(StringResources.Manager.GetString("PROCESS_CANNOT_ACCESS_FILE_IN_USE")); + public static IOException ProcessCannotAccessFileInUse(string paramName = null) => + paramName != null + ? new IOException(string.Format(StringResources.Manager.GetString("PROCESS_CANNOT_ACCESS_FILE_IN_USE_WITH_FILENAME"), paramName)) + : new IOException(StringResources.Manager.GetString("PROCESS_CANNOT_ACCESS_FILE_IN_USE")); } } \ No newline at end of file diff --git a/System.IO.Abstractions.TestingHelpers/MockFile.cs b/System.IO.Abstractions.TestingHelpers/MockFile.cs index 52ce256c4..27ecbe2da 100644 --- a/System.IO.Abstractions.TestingHelpers/MockFile.cs +++ b/System.IO.Abstractions.TestingHelpers/MockFile.cs @@ -180,7 +180,7 @@ public override void Delete(string path) var file = mockFileDataAccessor.GetFile(path); if (file != null && !file.AllowedFileShare.HasFlag(FileShare.Delete)) { - throw new IOException($"The process cannot access the file '{path}' because it is being used by another process."); + throw CommonExceptions.ProcessCannotAccessFileInUse(path); } mockFileDataAccessor.RemoveFile(path); diff --git a/System.IO.Abstractions.TestingHelpers/MockFileData.cs b/System.IO.Abstractions.TestingHelpers/MockFileData.cs index 55e4c687d..7aae029ab 100644 --- a/System.IO.Abstractions.TestingHelpers/MockFileData.cs +++ b/System.IO.Abstractions.TestingHelpers/MockFileData.cs @@ -177,7 +177,7 @@ public FileSecurity AccessControl internal void CheckFileAccess(string path, FileAccess access) { if (!AllowedFileShare.HasFlag((FileShare)access)) - throw new IOException($"The process cannot access the file '{path}' because it is being used by another process."); + throw CommonExceptions.ProcessCannotAccessFileInUse(path); } } } diff --git a/System.IO.Abstractions.TestingHelpers/Properties/Resources.resx b/System.IO.Abstractions.TestingHelpers/Properties/Resources.resx index b22ade6cf..76b81e948 100644 --- a/System.IO.Abstractions.TestingHelpers/Properties/Resources.resx +++ b/System.IO.Abstractions.TestingHelpers/Properties/Resources.resx @@ -150,4 +150,7 @@ The process cannot access the file because it is being used by another process. + + The process cannot access the file '{0}' because it is being used by another process. +