xrmb via RT wrote:
Sat Jul 04 22:31:27 2009: Request 47574 was acted upon.
Transaction: Ticket created by xrmb
Queue: Win32-File
Subject: (No subject given)
Broken in: 0.06
Severity: Critical
Owner: Nobody
Requestors: xrmb-m...@gmx.net
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=47574 >
I'm using active state perl 5.10.1004, and when I try to use
SetAttributes to set the compress flag I get a true return value
(indicating ok?), but the file is not compressed.
I'd call it a lack of documentation - Set doesn't allow COMPRESS.
Note 'Remarks' section of manual page:
----------------------------------------------------------------------------------------------
The SetFileAttributes function sets a file's attributes.
BOOL SetFileAttributes (
LPCTSTR lpFileName, // address of filename
DWORD dwFileAttributes // address of attributes to set
);
Parameters
lpFileName
Points to a string that specifies the name of the file whose attributes
are to be set.
Windows 95: This string must not exceed MAX_PATH characters.
Windows NT: There is a default string size limit for paths of MAX_PATH
characters. This
limit is related to how the SetFileAttributes function parses paths. An
application can
transcend this limit and send in paths longer than MAX_PATH characters
by calling the wide
(W) version of SetFileAttributes and prepending "\\?\" to the path. The
"\\?\" tells the
function to turn off path parsing; it lets paths longer than MAX_PATH
be used with
SetFileAttributesW. This also works with UNC names. The "\\?\" is
ignored as part of the
path. For example, "\\?\C:\myworld\private" is seen as
"C:\myworld\private", and
"\\?\UNC\bill_g_1\hotstuff\coolapps" is seen as
"\\bill_g_1\hotstuff\coolapps".
dwFileAttributes
Specifies the file attributes to set for the file. This parameter can be a
combination
of the following values. However, all other values override
FILE_ATTRIBUTE_NORMAL.
Value Meaning
FILE_ATTRIBUTE_ARCHIVE The file is an archive file. Applications use
this value to mark files for backup or removal.
FILE_ATTRIBUTE_NORMAL The file has no other attributes set. This
value is valid only if used alone.
FILE_ATTRIBUTE_HIDDEN The file is hidden. It is not included in an
ordinary directory listing.
FILE_ATTRIBUTE_READONLY The file is read-only. Applications can read
the file but cannot write to it or delete it.
FILE_ATTRIBUTE_SYSTEM The file is part of the operating system or is
used exclusively by it.
FILE_ATTRIBUTE_TEMPORARY The file is being used for temporary storage.
File systems attempt to keep all of the data
in memory for quicker access rather than
flushing the data back to mass storage. A temporary
file should be deleted by the application as
soon as it is no longer needed.
Return Value
If the function succeeds, the return value is TRUE.
If the function fails, the return value is FALSE. To get extended error
information, call GetLastError.
Remarks
You cannot use the SetFileAttribute function to set a file's compression
state. Setting
FILE_ATTRIBUTE_COMPRESSED in the dwFileAttributes parameter does nothing.
Use the DeviceIoControl
function and the FSCTL_SET_COMPRESSION operation to set a file's
compression state.
----------------------------------------------------------------------------------------------