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.

----------------------------------------------------------------------------------------------

Reply via email to