Skip to content

Commit c74fdf9

Browse files
committed
Make CreateFile work with directories
1 parent 130aa0f commit c74fdf9

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/Files.App/Helpers/Win32/Win32Helper.Storage.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,13 +939,15 @@ public static bool UnsetFileAttribute(string lpFileName, FileAttributes dwAttrs)
939939

940940
public static unsafe bool SetCompressionAttributeIoctl(string lpFileName, bool isCompressed)
941941
{
942+
// GENERIC_READ | GENERIC_WRITE flags are needed here
943+
// FILE_FLAG_BACKUP_SEMANTICS is used to open directories
942944
using var hFile = PInvoke.CreateFile(
943945
lpFileName,
944-
Win32PInvoke.FILE_WRITE_ATTRIBUTES,
946+
Win32PInvoke.GENERIC_READ | Win32PInvoke.GENERIC_WRITE | Win32PInvoke.FILE_WRITE_ATTRIBUTES,
945947
FILE_SHARE_MODE.FILE_SHARE_READ | FILE_SHARE_MODE.FILE_SHARE_WRITE,
946948
lpSecurityAttributes: null,
947949
FILE_CREATION_DISPOSITION.OPEN_EXISTING,
948-
FILE_FLAGS_AND_ATTRIBUTES.FILE_ATTRIBUTE_NORMAL,
950+
FILE_FLAGS_AND_ATTRIBUTES.FILE_ATTRIBUTE_NORMAL | FILE_FLAGS_AND_ATTRIBUTES.FILE_FLAG_BACKUP_SEMANTICS,
949951
hTemplateFile: null);
950952

951953
if (hFile.IsInvalid)

0 commit comments

Comments
 (0)