Programming Ruby: The Pragmatic Programmer's Guide

# Programming Ruby ### The Pragmatic Programmer's Guide
Previous < | Contents ^ | Next >

class File::Stat |
Parent: | Object
Version: | 1.6

### Index:

<=> atime blksize blockdev? blocks chardev? ctime dev directory? executable? executable_real? file? ftype gid grpowned? ino mode mtime nlink owned? pipe? rdev readable? readable_real? setgid? setuid? size size? socket? sticky? symlink? uid writable? writable_real? zero?

Objects of class `File::Stat` encapsulate common status information for `File` objects. The information is recorded at the moment the `File::Stat` object is created; changes made to the file after that point will not be reflected. `File::Stat` objects are returned by `IO#stat` , `File.stat` , `File#lstat` , and `File.lstat` . Many of these methods return platform-specific values, and not all values are meaningful on all systems. See also `Kernel#test` on page 425.

mixins
Comparable: | <, <=, ==, >=, >, between?

instance methods
<=> | statfile <=> anOtherStat -> -1, 0, 1
|  | Compares `File::Stat` objects by comparing their respective modification times.
`f1 = File.new("f1", "w")`
`sleep 1`
`f2 = File.new("f2", "w")`
`f1.stat <=> f2.stat` | » | `-1`
atime | statfile.atime -> aTime
|  | Returns the last access time for this file as an object of class `Time`.
`File.stat("testfile").atime` | » | `Wed Dec 31 18:00:00 CST 1969`
blksize | statfile.blksize -> anInteger
|  | Returns the native file system's block size. Will return 0 on platforms that don't support this information.
`File.stat("testfile").blksize` | » | `4096`
blockdev? | statfile.blockdev? -> `true` or `false`
|  | Returns `true` if the file is a block device, `false` if it isn't or if the operating system doesn't support this feature.
`File.stat("testfile").blockdev?` | » | `false`
blocks | statfile.blocks -> anInteger
|  | Returns the number of native file system blocks allocated for this file, or 0 if the operating system doesn't support this feature.
`File.stat("testfile").blocks` | » | `2`
chardev? | statfile.chardev? -> `true` or `false`
|  | Returns `true` if the file is a character device, `false` if it isn't or if the operating system doesn't support this feature.
`File.stat("/dev/tty").chardev?` | » | `true`
ctime | statfile.ctime -> aTime
|  | Returns the change time for statfile (that is, the time directory information about the file was changed, not the file itself).
`File.stat("testfile").ctime` | » | `Sun Nov 25 23:48:26 CST 2001`
dev | statfile.dev -> aFixnum
|  | Returns an integer representing the device on which statfile resides.
`File.stat("testfile").dev` | » | `774`
directory? | statfile.directory? -> `true` or `false`
|  | Returns `true` if statfile is a directory, `false` otherwise.
`File.stat("testfile").directory?` | » | `false`
`File.stat(".").directory?` | » | `true`
executable? | statfile.executable? -> `true` or `false`
|  | Returns `true` if statfile is executable or if the operating system doesn't distinguish executable files from nonexecutable files. The tests are made using the effective owner of the process.
`File.stat("testfile").executable?` | » | `false`
executable_real? | statfile.executable_real? -> `true` or `false`
|  | Same as `executable?`, but tests using the real owner of the process.
file? | statfile.file? -> `true` or `false`
|  | Returns `true` if statfile is a regular file (not a device file, pipe, socket, etc.).
`File.stat("testfile").file?` | » | `true`
ftype | statfile.ftype -> fileType
|  | Identifies the type of statfile. The return string is one of: ```file`'', ```directory`'', ```characterSpecial`'', ```blockSpecial`'', ```fifo`'', ```link`'', or ```socket`''.
`File.stat("/dev/tty").ftype` | » | `"characterSpecial"`
gid | statfile.gid -> aFixnum
|  | Returns the numeric group id of the owner of statfile.
`File.stat("testfile").gid` | » | `500`
grpowned? | statfile.grpowned? -> `true` or `false`
|  | Returns true if the effective group id of the process is the same as the group id of statfile. On Windows NT, returns `false`.
`File.stat("testfile").grpowned?` | » | `true`
`File.stat("/etc/passwd").grpowned?` | » | `false`
ino | statfile.ino -> aFixnum
|  | Returns the inode number for statfile.
`File.stat("testfile").ino` | » | `43331`
mode | statfile.mode -> aFixnum
|  | Returns an integer representing the permission bits of statfile. The meaning of the bits is platform dependent; on Unix systems, see `stat(2)`.
`File.chmod(0644, "testfile")` | » | `1`
`s = File.stat("testfile")`
`sprintf("%o", s.mode)` | » | `"100644"`
mtime | statfile.mtime -> aTime
|  | Returns the modification time for statfile.
`File.stat("testfile").mtime` | » | `Sun Nov 25 23:48:26 CST 2001`
nlink | statfile.nlink -> aFixnum
|  | Returns the number of hard links to statfile.
`File.stat("testfile").nlink` | » | `1`
`File.link("testfile", "testfile.bak")` | » | `0`
`File.stat("testfile").nlink` | » | `2`
owned? | statfile.owned? -> `true` or `false`
|  | Returns `true` if the effective user id of the process is the same as the owner of statfile.
`File.stat("testfile").owned?` | » | `true`
`File.stat("/etc/passwd").owned?` | » | `false`
pipe? | statfile.pipe? -> `true` or `false`
|  | Returns `true` if the operating system supports pipes and statfile is a pipe; `false` otherwise.
rdev | statfile.rdev -> aFixnum
|  | Returns an integer representing the device type on which statfile resides. Returns `0` if the operating system doesn't support this feature.
`File.stat("/dev/fd0").rdev` | » | `512`
readable? | statfile.readable? -> `true` or `false`
|  | Returns `true` if statfile is readable by the effective user id of this process.
`File.stat("testfile").readable?` | » | `true`
readable_real? | statfile.readable_real? -> `true` or `false`
|  | Returns `true` if statfile is readable by the real user id of this process.
`File.stat("testfile").readable_real?` | » | `true`
setgid? | statfile.setgid? -> `true` or `false`
|  | Returns `true` if statfile has the set-group-id permission bit set, `false` if it doesn't or if the operating system doesn't support this feature.
`File.stat("/usr/sbin/lpc").setgid?` | » | `true`
setuid? | statfile.setuid? -> `true` or `false`
|  | Returns `true` if statfile has the set-user-id permission bit set, `false` if it doesn't or if the operating system doesn't support this feature.
`File.stat("/bin/su").setuid?` | » | `true`
size | statfile.size -> aFixnum
|  | Returns the size of statfile in bytes.
`File.stat("testfile").size` | » | `66`
size? | statfile.size? -> aFixnum or `nil`
|  | Returns `nil` if statfile is a zero-length file; otherwise, returns the file size.
`File.stat("testfile").size?` | » | `66`
socket? | statfile.socket? -> `true` or `false`
|  | Returns `true` if statfile is a socket, `false` if it isn't or if the operating system doesn't support this feature.
`File.stat("testfile").socket?` | » | `false`
sticky? | statfile.sticky? -> `true` or `false`
|  | Returns `true` if statfile has its sticky bit set, `false` if it doesn't or if the operating system doesn't support this feature.
`File.stat("testfile").sticky?` | » | `false`
symlink? | statfile.symlink? -> `true` or `false`
|  | Returns `true` if statfile is a symbolic link, `false` if it isn't or if the operating system doesn't support this feature. As `File.stat` automatically follows symbolic links, `symlink?` will always be `false` for an object returned by `File.stat` .
`File.symlink("testfile", "alink")` | » | `0`
`File.stat("alink").symlink?` | » | `false`
`File.lstat("alink").symlink?` | » | `true`
uid | statfile.uid -> aFixnum
|  | Returns the numeric user id of the owner of statfile.
`File.stat("testfile").uid` | » | `501`
writable? | statfile.writable? -> `true` or `false`
|  | Returns `true` if statfile is writable by the effective user id of this process.
`File.stat("testfile").writable?` | » | `true`
writable_real? | statfile.writable_real? -> `true` or `false`
|  | Returns `true` if statfile is writable by the real user id of this process.
`File.stat("testfile").writable_real?` | » | `true`
zero? | statfile.zero? -> `true` or `false`
|  | Returns `true` if statfile is a zero-length file; `false` otherwise.
`File.stat("testfile").zero?` | » | `false`

Previous < | Contents ^ | Next >

Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0.
This reference is available for download.