Ruby.FilesAndDirectories History
Hide minor edits - Show changes to markup
November 29, 2006, at 11:01 PM
by 85.105.66.26
Added lines 1-151:
(:code:)
#!/usr/bin/ruby
#
# files and directories
#
#dosyayı yazmak i�in a�mak, dosyanın i�eriği silinir ve baştan itibaren
#yeniden yazılır.
open("dosya.txt", "w") do |file|
file.write "satir 1\n"
file.puts "satir 2"
end
#mevcut bir dosyayı satır satır okumak i�in
open("dosya.txt") do |file|
file.each { |l| puts l }
end
#Dosyanın sonuna ekleme yapılması
open("dosya.txt", "a") do |file|
file << "satir 3\n"
end
#mevcut bir dosyanın i�eriğini bir string'e kopyalamak
str = ""
open("dosya.txt") do |file|
str = file.read
end
puts str
#Bir dosyanın belli bir byte'ının okunması
open("dosya.txt") { |f| f.read(5) } #Dosyanın 5 bayte'ı okunur.
#Bir dosyanın var olup olmadığının kontrol edilmesi
#NOT: Sadece dosya kontrol� yapar, klas�ler i�in başka
#bir y�ntem kullanılır.
dosya = "dosya.txt"
if File.file? dosya
puts "dosya.txt bulundu"
end
#Bir klas�r�n var olup olmadığın kontrol edilmesi
if File.directory? "prj1"
puts "prj1 bulundu"
end
#Bir dosya veya klas�r�n var olup olmadığını kontrol edilmesi
if File.exists? "prj1"
puts "prj1 bulundu"
end
#Boş bir dosya oluşturulması
require 'fileutils'
FileUtils.touch("dosya2.txt")
#Bir klas�r oluşturulması
if ! File.directory? "klasor1"
FileUtils.mkdir("klasor1")
end
#Bir dosyanın okunabilir olup olmadığını kontrol edilmesi
if File.readable? "dosya.txt"
puts "dosya.txt okulabilir bir dosya"
end
#Bir dosyanın yazılabilir olup olmadığını kontrol edilmesi
if File.writable? "dosya.txt"
puts "dosya.txt yazılabilir bir dosya"
end
#Bir dosyanın �alıştırılabilir olup olmadığını kontrol edilmesi
if File.executable? "dosya.txt"
puts "dosya.txt �alıştırılabilir bir dosya"
end
#Bir dosyanın izinlerini değiştirilmesi
File.chmod(0664, "dosya.txt")
#Dosya tipinin bulunması
puts File.ftype("dosya.txt")
#Bir dosyanın boyutu(byte olarak)
puts File.size("dosya.txt")
#Bir dosyanın silinmesi
if File.exists? "dosya.txt"
File.delete "dosya.txt"
end
#Bir klas�r�n i�eriğinin listelenmesi: 1. y�ntem
Dir.entries("/tmp").each { |f| puts f }
#Bir klas�r�n i�eriğinin listelenmesi: 2. y�ntem
dir = Dir.open("/tmp")
begin
dir.each do |f|
puts f
end
ensure
dir.close
end
#Bir klas�r�n silinmesi
#NOT: Klas�r�n i�inin boş olması gerekiyor.
Dir.delete("klasor1") #veya Dir.rmdir("klasor1") veya Dir.unlink("klasor1")
#Şu an �alışılan klas�r�n path'ininin bulunması
puts Dir.pwd
#Ge�ici(tempfile) oluşturulması
require 'tempfile'
out = Tempfile.new("tempfile")
puts out.path
out << "heyyo"
out.close
#Ge�ici dosyanını başka bir dosyaya kaydedilmesi
require 'fileutils'
FileUtils.mv(out.path, "/tmp/my_tmp_file")
#Bir klas�r altındaki t�m dosyaların listelenmesi
#NOT: Recursive �alışır
require 'find'
Find.find("/tmp") { |path| puts path }
#dosya uzantısına g�re dosyaların bulunması
#.txt dosyalarının bulunması
require 'find'
Find.find("./") do |p|
ext = p[-4 ... p.size]
if ext && ext.downcase == ".txt"
puts "Buldum" + p
end
end
#Başka bir klas�re ge�ilmesi
Dir.chdir("/home")
Dir.entries(".").each { |f| puts f }
#standart girdi'den (�r: klavye'den) girilenlerin
#standart �ıktıya(�r: ekrana) yazılması
$stdin.each { |l| puts l }
#veya
#$stdin.each { |l| $stdout.puts l }
#Kaynaklar:
#O'Reilly Ruby Cookbook
#/usr/share/doc/ruby-manual/html/File.html
#/usr/share/doc/ruby-manual/html/Dir.html
#