Re: File system visiblilty
Re: File system visiblilty
- Subject: Re: File system visiblilty
- From: John Stiles <email@hidden>
- Date: Wed, 14 Nov 2007 16:58:58 -0800
First of all, filenames are not ASCII. They use
fileSystemRepresentation.
Second, what files in specific are you seeing which you shouldn't?
And is "err" ever coming back as anything other than noErr? If so,
what did you get?
On Nov 14, 2007, at 4:52 PM, Justin Hawkwood wrote:
I use the following methods to get the visibility of files in the
file system, but still some file some up in my list that do not
show up in the Finder. Any suggestions to get results more like
the Finder gives?
...
NSMutableArray *pathCont = [NSMutableArray arrayWithArray:[fileMan
contentsOfDirectoryAtPath:path error:&fmErr]];
if ([pathCont containsObject:@".hidden"]) {
NSArray *hiddenList = [[NSString stringWithContentsOfFile: [path
stringByAppendingPathComponent:@".hidden"]]
componentsSeparatedByString: @"\n"];
[pathCont removeObjectsInArray: hiddenList];
}
int i;
for (i = 0; i < [pathCont count]; i++) {
NSString *aFile = [pathCont objectAtIndex:i];
if ([self isVisible:aFile])
// code
}
...
- (BOOL)isVisible:(NSString *)path
{
if (([path hasPrefix:@"."]) || ([path characterAtIndex:([path
length] - 1)] == 13)) return FALSE;
OSStatus err;
FSRef fileRef;
Boolean isDirectory;
err = FSPathMakeRef((UInt8 *)[path
cStringUsingEncoding:NSASCIIStringEncoding], &fileRef,
&isDirectory); // ? noErr : fnfErr;
CFBooleanRef isInvisible;
BOOL isVisible = YES;
if (noErr == err)
err = LSCopyItemAttribute(&fileRef, kLSRolesAll,
kLSItemIsInvisible, (CFTypeRef *)&isInvisible);
if (noErr == err) {
isVisible = (CFBooleanGetValue(isInvisible) == FALSE);
CFRelease(isInvisible);
}
return isVisible;
}
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
40blizzard.com
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden