File & Folder Handling in Ruby
Read, write, and manage files and directories using Ruby's File, Dir, and FileUtils classes.
Reading Files
Ruby's `File` class and `IO` module provide multiple ways to read files. For small files, read everything at once. For large files, process line by line to keep memory constant.
1. Read Entire Text File
Load a whole file into a string.
2. Read Line by Line (Large Files)
Process one line at a time — constant memory regardless of file size.
3. Reading Binary Files
Read binary data with mode "rb" and process in chunks.
Creating & Writing Files
Ruby provides simple methods for writing text and binary files. The `File.write` family handles encoding automatically; use `"wb"` mode for binary. Always use block-form `File.open` to guarantee the handle is closed.
1. Write & Append Text
Create a new file or append to an existing one.
2. Write Binary Files
Write raw bytes with binwrite or "wb" mode.
3. Atomic Write — Safe File Updates
Write to a temp file then rename to prevent corruption.
Copy, Move, Rename & Delete
`FileUtils` (standard library) provides shell-like file operations — copy, move, rename, delete — with cross-platform support and optional verbose/dry-run modes.
1. Copy, Move & Rename
FileUtils.cp, mv, and File.rename.
2. Delete Files & Safe Removal
Remove files and directories safely.
Folder Operations
Ruby's `Dir` class handles directory listing and globbing. `FileUtils` handles creation and deletion. Together they cover everything needed for folder management.
1. Create & Delete Directories
mkdir, mkdir_p, rmdir, rm_rf.
2. Listing & Traversing Directories
Dir.entries, Dir.each_child, Dir.glob, and Find.
3. Glob Patterns
Master Dir.glob pattern syntax for flexible file matching.
File Metadata & Permissions
`File::Stat` holds all metadata about a file — size, timestamps, permissions, and type. Access it via `File.stat(path)` or the `File` predicate methods.
1. File::Stat — Size, Times & Type
Read file metadata without opening the file.
2. Checking File & Folder Existence
Verify paths before reading, writing, or deleting.
3. Tempfile — Temporary Files
Create safe temporary files that clean up automatically.
Best Practices
Production file handling must be safe against missing files, permission errors, and partial writes. These patterns cover the most common pitfalls.
1. Error Handling for File Operations
Rescue specific errno exceptions for robust file code.
2. Common Production Patterns
Always-close, process-large-files, and safe-mkdir patterns.