From: Chris Date: 2006-02-08T06:48:20+09:00 Subject: Re: How to check NTFS file permissions? POSIX-y - oh, right. I'm still not used to crossing the Win/not-Win line yet :) It was strange to see the file attributes of ctime = change time, instead of create time. Back to the point, though, if Dir.chdir isn't a read and it isn't an execute (and I assume it isn't a write), what kind of operation is it? And can someone add that method to Ruby's File or Dir? I'm hoping I don't run into this problem often - I've gone through a couple larger partitions and things have worked well except for this one thing. I'm more than a little surprised that it happened with SVI but not with Recycler. And while I don't trust what I can't see and Window's ACLs are definitely on that list, it gets hard to do anything if I don't assume things are working the way it looks like they should. No one has made enough documentation to dissuade that state of affairs :( To address Daniel Berger's comment (which jogged my memory of this), unfortunately in the WindowsXP GUI nothing is cut-and-dried: a checkbox square can contain a square instead of a checkmark if it is only partially true. Here it must be that some of the directory's files are read-only but others are not. So it may not reflect anything about the directory itself. I'm beginning to understand my confusion... Well, Thanks guys, -Chris David Vallner said: > Dňa Utorok 07 Február 2006 20:49 Chris napísal: >> This problem comes up because WinXP keeps putting it's 'System Volume >> Information' directories on each partition. In this case, I think the >> FS >> was created by an earlier incarnation of the machine I'm on. >> >> However it is marked Read Only, and there doesn't seem to be any way to >> change it. Properties window says it is Read only (with a square, not a >> checkmark) and Hidden, and it lets me think I'm changing it, even asks >> if >> I want to change all subordinates, but never changes it. That's an OT, >> but I'd be happy to hear a solution to it. > > The Properties window doesn't display whether a directory is or is not > readable as per the POSIX-y meaning of the concept. It should technically > display as read-only, if the contents of the directory are read-only, but > the > contents aren't actually checked, if only because it might end up taking > bloody long. I'm not even sure how those vestigial FAT attributes map to > NTFS > ones. If you really want to get nitty-gritty with the system, check > whatever > setting it is that's hiding the NTFS ACLs from you and look at those. > > Slight sidenote: You really don't want to touch System Volume Information > unless you really know what you're doing. > >> >> The problem I'm having is that File.readable? and File.executable? both >> give me true for that directory, but if I try Dir.chdir into it, it >> throws >> an exception. >> >> Is there a check I can do, or is my only option: rescue Errno::EACCES? >> And I guess the followup is: is it much more expensive in Ruby to catch >> exceptions than to execute regular code (as it is in Java)? >> > > Do you expect to run into inaccessible directories in the script more > often > than you actually process data in accessible ones? Unless so, I say don't > bother and use Errno::EACCES. The overhead isn't likely to be significant > compared to total execution time. > > David Vallner