디렉토리는 파일을 포함한다. 루비에서 제공하는 Dir 클래스를 이용해서 디렉토리 관련 작업을 할 수 있다.
디렉토리 탐험하기
chdir 메서드를 이용해서 작업 디렉토리를 변경할 수 있다.
Dir.chdir("/usr/bin")
Dir.pwd로 현재 작업 디렉토리를 알 수 있다.
puts Dir.pwd # /usr/bin을 출력한다.
Dir.entries로 디렉토리에 있는 파일의 내용을 가져올 수 있다.
puts Dir.entries("/usr/bin").join("\n")
foreach를 이용할 수도 있다.
Dir.foreach("/usr/bin") do | entry |
puts entry
end
디렉토리 만들기, 삭제
Dir.mkdir('mydir')
Dir.delete('testdir')
임시파일 다루기
프로그램이 실행되는 동안에만 임시로 사용할 데이터를 저장하기 위해서 임시파일을 생성하기도 한다. 리눅스 운영체제는 이런 임시파일들을 위해서 임시파일 디렉토리 "/tmp"를 제공한다. 임시파일이 필요하다면, "/tmp"디렉토리에 파일을 만들어서 사용하면 된다.
Dir.tmpdir로 운영체제가 제공하는 임시디렉토리를 찾을 수 있다. Dir.tmpdir은 루비가 기본제공하는 메서드가 아니다. 사용하려면 tmpdir이 필요하다.
require 'tmpdir'
tmpfilename = File.join(Dir.tmpdir, 'mytemp.dat')
tempfile = File.new(tempfilename, "w")
tempfile.puts "This is a temporary file"
tempfile.close
File.delete(tempfilename)
/tmp 디렉토리는 임사파일을 만들기 위한 모든 애플리케이션이 공통으로 사용한다. 따라서 중복된 파일이름을 피해야 한다. 루비는 Tmpfile이라는 메서드를 제공하는데, 이 메서드를 이용하면 중복되지 않는 임시파일을 만들 수 있다.
require 'tempfile'
f = Tempfile.new('tingtong')
f.puts "Hello"
puts f.path
f.close
Contents
파일
표준출력, 표준입력, 표준에러
파일 열기 닫기
File.open 메서드
파일 읽기, 쓰기
sysread method
syswrite method
each_byte method
IO.readlines method
IO.foreach method
파일 이름 변경과 삭제
파일 권한과 소유자
파일 정보 확인
심볼릭 링크 읽기
디렉토리
디렉토리 탐험하기
디렉토리 만들기, 삭제
임시파일 다루기
파일 상태
히스토리
Recent Posts
Archive Posts
Tags