Sun Jul 05 10:52:36 2009: Request 47574 was acted upon.
Transaction: Correspondence added by dbec...@roadrunner.com
       Queue: Win32-File
     Subject: Re: [rt.cpan.org #47574]
   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 >


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