class File
Defined in:
file.crfile/flock.cr
file/stat.cr
Constant Summary
-
SEPARATOR =
'/' -
The file/directory separator character. '/' in unix, '\\' in windows.
-
SEPARATOR_STRING =
"/" -
The file/directory separator string. "/" in unix, "\\" in windows.
Class Method Summary
-
.basename(filename, suffix) : String
Returns the last component of the given filename If the given suffix is present at the end of filename, it is removed
-
.basename(filename) : String
Returns the last component of the given filename
-
.delete(filename)
Delete a file.
-
.directory?(path) : Bool
Returns true if the given path exists and is a directory
-
.dirname(filename) : String
Returns all components of the given filename except the last one
-
.each_line(filename, encoding = nil, invalid = nil, &block)
Yields each line of the given file to the given block.
-
.each_line(filename, encoding = nil, invalid = nil)
Returns an
Iteratorfor each line in the given file. -
.executable?(filename) : Bool
Returns true if file is executable by the real user id of this process else returns false
-
.exists?(filename) : Bool
Returns true if file exists else returns false
- .expand_path(path, dir = nil) : String
-
.extname(filename) : String
Returns a file's extension, or an empty string if the file has no extension.
-
.file?(path) : Bool
Returns true if given path exists and is a file
-
.join(parts : Array | Tuple) : String
Returns a new string formed by joining the strings using File::SEPARATOR.
-
.join(*parts) : String
Returns a new string formed by joining the strings using File::SEPARATOR.
-
.link(old_path, new_path)
Creates a new link (also known as a hard link) to an existing file.
-
.lstat(path) : Stat
Returns a
File::Statobject for the named file or raisesErrnoin case of an error. - .open(filename, mode = "r", perm = DEFAULT_CREATE_MODE, encoding = nil, invalid = nil) : self
- .open(filename, mode = "r", perm = DEFAULT_CREATE_MODE, encoding = nil, invalid = nil, &block)
-
.read(filename, encoding = nil, invalid = nil) : String
Returns the content of the given file as a string.
-
.read_lines(filename, encoding = nil, invalid = nil) : Array(String)
Returns all lines of the given file as an array of strings.
-
.readable?(filename) : Bool
Returns true if file is readable by the real user id of this process else returns false
-
.real_path(path) : String
Resolves the real path of the file by following symbolic links
- .rename(old_filename, new_filename)
-
.size(filename) : UInt64
Returns the size of the given file in bytes.
-
.stat(path) : Stat
Returns a
File::Statobject for the named file or raisesErrnoin case of an error. -
.symlink(old_path, new_path)
Creates a symbolic link to an existing file.
-
.symlink?(filename) : Bool
Returns true if the pointed file is a symlink.
-
.writable?(filename) : Bool
Returns true if file is writable by the real user id of this process else returns false
-
.write(filename, content, perm = DEFAULT_CREATE_MODE, encoding = nil, invalid = nil)
Write the given content to the given filename.
- .new(filename : String, mode = "r", perm = DEFAULT_CREATE_MODE, encoding = nil, invalid = nil)
Instance Method Summary
- #flock_exclusive(blocking = true, &block)
-
#flock_exclusive(blocking = true)
Place an exclusive advisory lock.
- #flock_shared(blocking = true, &block)
-
#flock_shared(blocking = true)
Place a shared advisory lock.
-
#flock_unlock
Remove an existing advisory lock held by this process.
- #path : String
- #size
- #to_s(io)
-
#truncate(size = 0)
Truncates the file to the specified size.
Instance methods inherited from class IO::FileDescriptor
blocking
blocking,
blocking=(value)
blocking=,
close_on_exec=(arg : Bool)
close_on_exec=,
close_on_exec?
close_on_exec?,
closed? : Bool
closed?,
fcntl(cmd, arg = 0)
fcntl,
fd : Int32
fd,
finalize
finalize,
pos
pos,
pos=(value)
pos=,
read_timed_out : Bool
read_timed_out,
read_timed_out=(read_timed_out : Bool)
read_timed_out=,
read_timeout=(read_timeout : Number)read_timeout=(read_timeout : Time::Span)
read_timeout=(read_timeout : Nil) read_timeout=, reopen(other : IO::FileDescriptor) reopen, seek(offset, whence : Seek = Seek::Set) seek, stat stat, tell tell, to_fd_io to_fd_io, tty? tty?, write_timed_out : Bool write_timed_out, write_timed_out=(write_timed_out : Bool) write_timed_out=, write_timeout=(write_timeout : Number)
write_timeout=(write_timeout : Time::Span)
write_timeout=(write_timeout : Nil) write_timeout=
Class methods inherited from class IO::FileDescriptor
fcntl(fd, cmd, arg = 0)
fcntl,
new(fd : Int32, blocking = false, edge_triggerable = false)
new
Instance methods inherited from module IO::Buffered
close
close,
flush
flush,
flush_on_newline=(flush_on_newline)
flush_on_newline=,
flush_on_newline?
flush_on_newline?,
read(slice : Slice(UInt8))
read,
rewind
rewind,
sync=(sync)
sync=,
sync?
sync?,
unbuffered_close
unbuffered_close,
unbuffered_flush
unbuffered_flush,
unbuffered_read(slice : Slice(UInt8))
unbuffered_read,
unbuffered_rewind
unbuffered_rewind,
unbuffered_write(slice : Slice(UInt8))
unbuffered_write,
write(slice : Slice(UInt8))
write
Instance methods inherited from module IO
<<(obj) : self
<<,
close
close,
closed?
closed?,
cooked(&block)
cooked,
cooked!
cooked!,
each_byteeach_byte(&block) each_byte, each_char(&block)
each_char each_char, each_line(*args)
each_line(*args, &block) each_line, encoding : String encoding, flush flush, gets(limit : Int) : String | Nil
gets(delimiter : Char, limit : Int) : String | Nil
gets(delimiter : Char) : String | Nil
gets : String | Nil
gets(delimiter : String) : String | Nil gets, gets_to_end : String gets_to_end, print(obj) : Nil
print(*objects : _) : Nil print, printf(format_string, *args) : Nil
printf(format_string, args : Array | Tuple) : Nil printf, puts : Nil
puts(*objects : _) : Nil
puts(string : String) : Nil
puts(obj) : Nil puts, raw(&block) raw, raw! raw!, read(slice : Slice(UInt8)) read, read_byte : UInt8 | Nil read_byte, read_bytes(type, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) read_bytes, read_char : Char | Nil read_char, read_fully(slice : Slice(UInt8)) read_fully, read_line(*args) : String | Nil read_line, read_nonblock(size) read_nonblock, read_utf8(slice : Slice(UInt8)) read_utf8, read_utf8_byte read_utf8_byte, rewind rewind, set_encoding(encoding : String, invalid : Symbol | Nil = nil) set_encoding, skip(bytes_count : Int) : Nil skip, tty? : Bool tty?, write(slice : Slice(UInt8)) : Nil write, write_byte(byte : UInt8) write_byte, write_bytes(object, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) write_bytes, write_utf8(slice : Slice(UInt8)) write_utf8
Class methods inherited from module IO
copy(src, dst)
copy,
pipe(read_blocking = false, write_blocking = false, &block)pipe(read_blocking = false, write_blocking = false) pipe, select(read_ios, write_ios, error_ios, timeout_sec : LibC::TimeT | Int | Float | Nil)
select(read_ios, write_ios = nil, error_ios = nil) select
Instance methods inherited from module JSON::Builder
json_array(&block)
json_array,
json_object(&block)
json_object
Instance methods inherited from class Reference
==(other)==(other : self) ==, hash hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other)===(other : YAML::Any)
===(other : JSON::Any) ===, =~(other) =~, class class, clone clone, crystal_type_id crystal_type_id, dup dup, hash hash, inspect
inspect(io : IO) inspect, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(io : IO)
to_pretty_json to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try
Class methods inherited from class Object
==(other : Class)
==,
===(other)
===,
cast(other) : self
cast,
from_json(string_or_io) : self
from_json,
from_yaml(string : String) : self
from_yaml,
hash
hash,
inspect(io)
inspect,
name : String
name,
to_s(io)
to_s,
|(other : U.class)
|
Class Method Detail
Returns the last component of the given filename If the given suffix is present at the end of filename, it is removed
File.basename("/foo/bar/file.cr", ".cr") # => "file"Returns the last component of the given filename
File.basename("/foo/bar/file.cr") # => "file.cr"Delete a file. Deleting non-existent file will raise an exception.
# touch foo
File.delete("./foo")
# => nil
File.delete("./bar")
# => Error deleting file './bar': No such file or directory (Errno)Returns true if the given path exists and is a directory
# touch foo
# mkdir bar
File.directory?("foo") # => false
File.directory?("bar") # => true
File.directory?("foobar") # => falseReturns all components of the given filename except the last one
File.dirname("/foo/bar/file.cr") # => "/foo/bar"Yields each line of the given file to the given block.
File.each_line("./foo") do |line|
# loop
endReturns an Iterator for each line in the given file.
Returns true if file is executable by the real user id of this process else returns false
echo "foo" > foo
File.executable?("foo") # => falseReturns true if file exists else returns false
File.exists?("foo") # => false
echo "foo" > foo
File.exists?("foo") # => trueReturns a file's extension, or an empty string if the file has no extension.
File.extname("foo.cr")
# => .crReturns true if given path exists and is a file
# touch foo
# mkdir bar
File.file?("foo") # => true
File.file?("bar") # => false
File.file?("foobar") # => falseReturns a new string formed by joining the strings using File::SEPARATOR.
File.join("foo", "bar", "baz") # => "foo/bar/baz"
File.join("foo/", "/bar/", "/baz") # => "foo/bar/baz"
File.join("/foo/", "/bar/", "/baz/") # => "/foo/bar/baz/"Returns a new string formed by joining the strings using File::SEPARATOR.
File.join("foo", "bar", "baz") # => "foo/bar/baz"
File.join("foo/", "/bar/", "/baz") # => "foo/bar/baz"
File.join("/foo/", "/bar/", "/baz/") # => "/foo/bar/baz/"Creates a new link (also known as a hard link) to an existing file.
Returns a File::Stat object for the named file or raises
Errno in case of an error. In case of a symbolic link
information about it is returned.
echo "foo" > foo
File.lstat("foo").size # => 4
File.lstat("foo").mtime # => 2015-09-23 06:24:19 UTCReturns the content of the given file as a string.
# echo "foo" >> bar
File.read("./bar")
# => fooReturns all lines of the given file as an array of strings.
# echo "foo" >> foobar
# echo "bar" >> foobar
File.read_lines("./foobar")
# => ["foo\n","bar\n"]Returns true if file is readable by the real user id of this process else returns false
echo "foo" > foo
File.readable?("foo") # => trueResolves the real path of the file by following symbolic links
Returns a File::Stat object for the named file or raises
Errno in case of an error. In case of a symbolic link
it is followed and information about the target is returned.
echo "foo" > foo
File.stat("foo").size # => 4
File.stat("foo").mtime # => 2015-09-23 06:24:19 UTCReturns true if file is writable by the real user id of this process else returns false
echo "foo" > foo
File.writable?("foo") # => trueWrite the given content to the given filename. An existing file will be overwritten, or a file will be created with the given filename.
File.write("./foo", "bar")Instance Method Detail
Place an exclusive advisory lock. Only one process may hold an exclusive lock for a given file at a given time.
Errno::EWOULDBLOCK is raised if blocking is set to false and any existing lock is set.