MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / SetFileCompression

Function SetFileCompression

Libraries/unrar/filefn.cpp:480–501  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

478
479#if defined(_WIN_ALL) && !defined(SFX_MODULE)
480bool SetFileCompression(const wchar *Name,bool State)
481{
482 HANDLE hFile=CreateFile(Name,FILE_READ_DATA|FILE_WRITE_DATA,
483 FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,
484 FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_SEQUENTIAL_SCAN,NULL);
485 if (hFile==INVALID_HANDLE_VALUE)
486 {
487 wchar LongName[NM];
488 if (GetWinLongPath(Name,LongName,ASIZE(LongName)))
489 hFile=CreateFile(LongName,FILE_READ_DATA|FILE_WRITE_DATA,
490 FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,
491 FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_SEQUENTIAL_SCAN,NULL);
492 }
493 if (hFile==INVALID_HANDLE_VALUE)
494 return false;
495 SHORT NewState=State ? COMPRESSION_FORMAT_DEFAULT:COMPRESSION_FORMAT_NONE;
496 DWORD Result;
497 int RetCode=DeviceIoControl(hFile,FSCTL_SET_COMPRESSION,&NewState,
498 sizeof(NewState),NULL,0,&Result,NULL);
499 CloseHandle(hFile);
500 return RetCode!=0;
501}
502#endif
503
504

Callers 2

ExtractCurrentFileMethod · 0.85
ExtrCreateDirMethod · 0.85

Calls 1

GetWinLongPathFunction · 0.85

Tested by

no test coverage detected