• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: IsReadableFileAtPath
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IsReadableFileAtPath


  • Subject: Re: IsReadableFileAtPath
  • From: Jeremy Pereira <email@hidden>
  • Date: Mon, 8 Mar 2010 11:54:30 +0000

On 8 Mar 2010, at 11:32, gMail.com wrote:

> Hi, thanks to all of you.
> After some days trynign and thinking, I have used lstat to check the
> filePermissions because I need to check thousands files per session.
> However I realized that Permissions and isReadableFile or isWritableFile or
> isDeletableFile are two different things, so please may you tell me whether
> my methods here below are right or wrong? Short version:

That depends on the semantics you want for isReadableFile: and isWriteableFile:  The code as written checks if the owner of the file can read or write it.  However, you probably want to know if the currently running process can read or write it which may have a different answer if the owner of the process is not the same as the owner of the file.

isDeleteableFile: is wrong.  You need to check whether you have write access to the directory containing the file.  See below script:

monica:~ jeremyp$ mkdir foo
monica:~ jeremyp$ cd foo
monica:foo jeremyp$ touch foo
monica:foo jeremyp$ chmod -w .
monica:foo jeremyp$ ls -la
total 0
dr-xr-xr-x    3 jeremyp  staff   102  8 Mar 11:49 .
drwx------+ 115 jeremyp  staff  3910  8 Mar 11:49 ..
-rw-r--r--    1 jeremyp  staff     0  8 Mar 11:49 foo
monica:foo jeremyp$ rm foo
rm: foo: Permission denied



>
> IsReadableFile:filePath
>     cPath = [mManager fileSystemRepresentationWithPath:filePath];
>    lstat(cPath, &sb);
>    return ((sb.st_mode & S_IRUSR) != 0);
>
> IsWritableFile:filePath
>    //I check here the ParentFolder of the filePath
>    parentFolder = [filePath stringByDeletingLastPathComponent];
>    cPath = [mManager fileSystemRepresentationWithPath:parentFolder];
>    lstat(cPath, &sb);
>    return ((sb.st_mode & (S_IWUSR | S_IXUSR)) != 0);
>
> IsDeletableFile:filePath
>    the same as IsWritableFile:filePath above
>
> Will these methods work on any volume mounted on my desktop?
> (e.g. Local volume, remote volume, disk image volume, on webdav, smb, ftp,
> afp, hfs, on remote win disk...)
>
> Thanks
> Leo
>
>
>> Da: Kevin Perry <email@hidden>
>> Data: Mon, 1 Mar 2010 11:37:06 -0800
>> A: "gMail.com" <email@hidden>
>> Cc: <email@hidden>
>> Oggetto: Re: IsReadableFileAtPath
>>
>>
>> -Kevin
>>
>> On Mar 1, 2010, at 11:20 AM, gMail.com wrote:
>>
>>> Hi,
>>> I need to check whether a file or a symlink could be really copied.
>>> I have just seen that the Cocoa API isReadableFileAtPath traverses the
>>> symlink, so, in case the target file is not readable, my app doesn't copy
>>> the symlink, while the Finder can properly do. So my app does wrong.
>>>
>>> The question is:
>>> How can I understand whether a file or symlink can really be copied?
>>> I have seen that isReadableFileAtPath uses the C command "access" which
>>> indeed traverses the symlink. So I cannot use it. So, any idea?
>>> And I wouldn't use the Carbon APIs because I need to compile for 64 bit.
>>> Thank you.
>>>
>>> Leonardo
>>>
>>>
>>> _______________________________________________
>>>
>>> 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
>>
>
>
> _______________________________________________
>
> 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


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
_______________________________________________

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

References: 
 >Re: IsReadableFileAtPath (From: "gMail.com" <email@hidden>)

  • Prev by Date: Re: reading text rom Pages doc
  • Next by Date: NSCollectionView and animating spinner crash
  • Previous by thread: Re: IsReadableFileAtPath
  • Next by thread: NSXMLDocument outputs numbers in exponential format?
  • Index(es):
    • Date
    • Thread