Hi,
I think FSGetCatalogInfo (&ref, kFSCatInfoCreateDate, &info, NULL, NULL, 
NULL); info.createDate has the creation date, can see it clearly in debugger, 
problem is, how to convert it into NSDatefollowing code taken from net works 
with UTC dates from OS X or FAT files, but not working with NTFS files, how to 
adjust this code to be able to convert NTFS file's date as well?
static NSTimeInterval CarbonReferenceDate( ){    static NSTimeInterval 
sCarbonReferenceDate = 0;    if( sCarbonReferenceDate == 0 ) {        
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];        NSDate 
*ref = [[NSCalendarDate alloc] initWithYear: 1904 month: 1 day: 1               
                                                                                
       hour: 0 minute: 0 second: 0 timeZone: gmt];        sCarbonReferenceDate 
= [ref timeIntervalSinceReferenceDate];        [ref release];    }    return 
sCarbonReferenceDate;}

static NSDate* UTCDateTimeToNSDate( UTCDateTime *utc ){    NSTimeInterval 
utcTime = *(unsigned long long*)utc / 65536.0;    return [NSDate 
dateWithTimeIntervalSinceReferenceDate: CarbonReferenceDate() + utcTime];}

static void NSDateToUTCDateTime( NSDate* date, UTCDateTime *utc ){    
*(unsigned long long*)utc = ([date timeIntervalSinceReferenceDate] - 
CarbonReferenceDate()) * 65536.0;}

--- 2010年5月23日 星期日,Ken Thomases <k...@codeweavers.com> 寫道﹕

寄件人: Ken Thomases <k...@codeweavers.com>
主題: Re: getting file creation date from NTFS
收件人: "Paul Sanders" <p.sand...@alpinesoft.co.uk>
副本(CC): "Angelo Chen" <angelochen...@yahoo.com.hk>, cocoa-dev@lists.apple.com
日期: 2010年5月23日,星期日,下午5:56

On May 23, 2010, at 4:19 AM, Paul Sanders wrote:

> Assuming that these figures come from stat (man -S 2 stat for details), it 
> should be in something called st_birthtime.

Yes, although the stat structure only has the st_birthtimespec field if you 
build with 64-bit inodes enabled.  This is the default on Snow Leopard or for 
64-bit, but not for 32-bit on Leopard or earlier.  Unfortunately, it seems that 
FSMegaInfo is not 64-bit-inode aware.  It will never print the birth time.

It's not hard to update it to be aware of that, though.

>  st_atime refers to the last time the file was accessed. So, either call stat 
>yourself or, better perhaps, go via the file manager:
>  
> http://developer.apple.com/mac/library/DOCUMENTATION/Carbon/Reference/File_Manager/Reference/reference.html

FSMegaInfo can be used to exercise that API, too.  It's not just for 'stat'.  
To get the creation date:

./FSMegaInfo -vv FSGetCatalogInfo -kFSCatInfoCreateDate /path/to/file

or, for everything:

./FSMegaInfo -vv FSGetCatalogInfo -kFSCatInfoGettableInfo /path/to/file

Cheers,
Ken





_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to