diff options
author | Rob Mensching <rob@firegiant.com> | 2022-11-04 01:05:28 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2022-11-04 14:11:42 -0700 |
commit | f8749f8e438b150884449ad3e2e13aed750de679 (patch) | |
tree | 7cc2f8c403d0f1bbea04153ed618897f14d688a1 /src/api | |
parent | 8f67ce3ce8a248b7421e14ec3dd6f65e9b53ea08 (diff) | |
download | wix-f8749f8e438b150884449ad3e2e13aed750de679.tar.gz wix-f8749f8e438b150884449ad3e2e13aed750de679.tar.bz2 wix-f8749f8e438b150884449ad3e2e13aed750de679.zip |
Provide useful error message when file system operations fail
Fixes 5417
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/wix/WixToolset.Extensibility/Services/IFileSystem.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/api/wix/WixToolset.Extensibility/Services/IFileSystem.cs b/src/api/wix/WixToolset.Extensibility/Services/IFileSystem.cs index cd987555..83a44400 100644 --- a/src/api/wix/WixToolset.Extensibility/Services/IFileSystem.cs +++ b/src/api/wix/WixToolset.Extensibility/Services/IFileSystem.cs | |||
@@ -4,6 +4,7 @@ namespace WixToolset.Extensibility.Services | |||
4 | { | 4 | { |
5 | using System; | 5 | using System; |
6 | using System.IO; | 6 | using System.IO; |
7 | using WixToolset.Data; | ||
7 | 8 | ||
8 | /// <summary> | 9 | /// <summary> |
9 | /// Abstracts basic file system operations. | 10 | /// Abstracts basic file system operations. |
@@ -13,34 +14,38 @@ namespace WixToolset.Extensibility.Services | |||
13 | /// <summary> | 14 | /// <summary> |
14 | /// Copies a file. | 15 | /// Copies a file. |
15 | /// </summary> | 16 | /// </summary> |
17 | /// <param name="sourceLineNumbers">Optional source line number requiring the copy.</param> | ||
16 | /// <param name="source">The file to copy.</param> | 18 | /// <param name="source">The file to copy.</param> |
17 | /// <param name="destination">The destination file.</param> | 19 | /// <param name="destination">The destination file.</param> |
18 | /// <param name="allowHardlink">Allow hardlinks.</param> | 20 | /// <param name="allowHardlink">Allow hardlinks.</param> |
19 | void CopyFile(string source, string destination, bool allowHardlink); | 21 | void CopyFile(SourceLineNumber sourceLineNumbers, string source, string destination, bool allowHardlink); |
20 | 22 | ||
21 | /// <summary> | 23 | /// <summary> |
22 | /// Deletes a file. | 24 | /// Deletes a file. |
23 | /// </summary> | 25 | /// </summary> |
26 | /// <param name="sourceLineNumbers">Optional source line number requiring the delete.</param> | ||
24 | /// <param name="source">The file to delete.</param> | 27 | /// <param name="source">The file to delete.</param> |
25 | /// <param name="throwOnError">Indicates the file must be deleted. Default is a best effort delete.</param> | 28 | /// <param name="throwOnError">Indicates the file must be deleted. Default is a best effort delete.</param> |
26 | /// <param name="maxRetries">Maximum retry attempts. Default is 4.</param> | 29 | /// <param name="maxRetries">Maximum retry attempts. Default is 4.</param> |
27 | void DeleteFile(string source, bool throwOnError = false, int maxRetries = 4); | 30 | void DeleteFile(SourceLineNumber sourceLineNumbers, string source, bool throwOnError = false, int maxRetries = 4); |
28 | 31 | ||
29 | /// <summary> | 32 | /// <summary> |
30 | /// Moves a file. | 33 | /// Moves a file. |
31 | /// </summary> | 34 | /// </summary> |
35 | /// <param name="sourceLineNumbers">Optional source line number requiring the move.</param> | ||
32 | /// <param name="source">The file to move.</param> | 36 | /// <param name="source">The file to move.</param> |
33 | /// <param name="destination">The destination file.</param> | 37 | /// <param name="destination">The destination file.</param> |
34 | void MoveFile(string source, string destination); | 38 | void MoveFile(SourceLineNumber sourceLineNumbers, string source, string destination); |
35 | 39 | ||
36 | /// <summary> | 40 | /// <summary> |
37 | /// Opens a file. | 41 | /// Opens a file. |
38 | /// </summary> | 42 | /// </summary> |
43 | /// <param name="sourceLineNumbers">Optional source line number requiring the file.</param> | ||
39 | /// <param name="path">The file to open.</param> | 44 | /// <param name="path">The file to open.</param> |
40 | /// <param name="mode">A System.IO.FileMode value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.</param> | 45 | /// <param name="mode">A System.IO.FileMode value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.</param> |
41 | /// <param name="access">A System.IO.FileAccess value that specifies the operations that can be performed on the file.</param> | 46 | /// <param name="access">A System.IO.FileAccess value that specifies the operations that can be performed on the file.</param> |
42 | /// <param name="share">A System.IO.FileShare value specifying the type of access other threads have to the file.</param> | 47 | /// <param name="share">A System.IO.FileShare value specifying the type of access other threads have to the file.</param> |
43 | FileStream OpenFile(string path, FileMode mode, FileAccess access, FileShare share); | 48 | FileStream OpenFile(SourceLineNumber sourceLineNumbers, string path, FileMode mode, FileAccess access, FileShare share); |
44 | 49 | ||
45 | /// <summary> | 50 | /// <summary> |
46 | /// Executes an action and retries on any exception a few times with short pause | 51 | /// Executes an action and retries on any exception a few times with short pause |