aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-11-04 01:05:28 -0700
committerRob Mensching <rob@firegiant.com>2022-11-04 14:11:42 -0700
commitf8749f8e438b150884449ad3e2e13aed750de679 (patch)
tree7cc2f8c403d0f1bbea04153ed618897f14d688a1 /src/api
parent8f67ce3ce8a248b7421e14ec3dd6f65e9b53ea08 (diff)
downloadwix-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.cs13
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