Recent Changes - Search:

edit SideBar


Firefox 2
Get Thunderbird!

FilesAndDirectories

#!/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&#305;n içeri&#287;ini bir string'e kopyalamak
str = ""
open("dosya.txt") do |file|
	str = file.read
end
puts str

#Bir dosyan&#305;n belli bir byte'&#305;n&#305;n okunmas&#305;
open("dosya.txt") { |f| f.read(5) } #Dosyan&#305;n 5 bayte'&#305; okunur.

#Bir dosyan&#305;n var olup olmad&#305;&#287;&#305;n&#305;n kontrol edilmesi
#NOT: Sadece dosya kontrolü yapar, klasöler için ba&#351;ka
#bir yöntem kullan&#305;l&#305;r.
dosya = "dosya.txt"
if File.file? dosya
	puts "dosya.txt bulundu"
end

#Bir klasörün var olup olmad&#305;&#287;&#305;n kontrol edilmesi
if File.directory? "prj1"
	puts "prj1 bulundu"
end

#Bir dosya veya klasörün var olup olmad&#305;&#287;&#305;n&#305; kontrol edilmesi
if File.exists? "prj1"
	puts "prj1 bulundu"
end

#Bo&#351; bir dosya olu&#351;turulmas&#305;
require 'fileutils'
FileUtils.touch("dosya2.txt")

#Bir klasör olu&#351;turulmas&#305;
if ! File.directory? "klasor1"
	FileUtils.mkdir("klasor1")
end

#Bir dosyan&#305;n okunabilir olup olmad&#305;&#287;&#305;n&#305; kontrol edilmesi
if File.readable? "dosya.txt"
	puts "dosya.txt okulabilir bir dosya"
end

#Bir dosyan&#305;n yaz&#305;labilir olup olmad&#305;&#287;&#305;n&#305; kontrol edilmesi
if File.writable? "dosya.txt"
	puts "dosya.txt yaz&#305;labilir bir dosya"
end

#Bir dosyan&#305;n çal&#305;&#351;t&#305;r&#305;labilir olup olmad&#305;&#287;&#305;n&#305; kontrol edilmesi
if File.executable? "dosya.txt"
	puts "dosya.txt çal&#305;&#351;t&#305;r&#305;labilir bir dosya"
end

#Bir dosyan&#305;n izinlerini de&#287;i&#351;tirilmesi
File.chmod(0664, "dosya.txt")

#Dosya tipinin bulunmas&#305;
puts File.ftype("dosya.txt")

#Bir dosyan&#305;n boyutu(byte olarak)
puts File.size("dosya.txt")

#Bir dosyan&#305;n silinmesi
if File.exists? "dosya.txt"
	File.delete "dosya.txt"
end

#Bir klasörün içeri&#287;inin listelenmesi: 1. yöntem
Dir.entries("/tmp").each { |f| puts f }

#Bir klasörün içeri&#287;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&#351; olmas&#305; gerekiyor.
Dir.delete("klasor1") #veya Dir.rmdir("klasor1") veya Dir.unlink("klasor1")

#&#350;u an çal&#305;&#351;&#305;lan klasörün path'ininin bulunmas&#305;
puts Dir.pwd

#Geçici(tempfile) olu&#351;turulmas&#305;
require 'tempfile'
out = Tempfile.new("tempfile")
puts out.path
out << "heyyo"
out.close

#Geçici dosyan&#305;n&#305; ba&#351;ka bir dosyaya kaydedilmesi
require 'fileutils'
FileUtils.mv(out.path, "/tmp/my_tmp_file")

#Bir klasör alt&#305;ndaki tüm dosyalar&#305;n listelenmesi
#NOT: Recursive çal&#305;&#351;&#305;r
require 'find'
Find.find("/tmp") { |path| puts path }

#dosya uzant&#305;s&#305;na göre dosyalar&#305;n bulunmas&#305;
#.txt dosyalar&#305;n&#305;n bulunmas&#305;
require 'find'
Find.find("./") do |p| 
	ext = p[-4 ... p.size]
	if ext && ext.downcase == ".txt"
		puts "Buldum" + p
	end
end

#Ba&#351;ka bir klasöre geçilmesi
Dir.chdir("/home")
Dir.entries(".").each { |f| puts f }

#standart girdi'den (ör: klavye'den) girilenlerin 
#standart ç&#305;kt&#305;ya(ör: ekrana) yaz&#305;lmas&#305;
$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
	#

Edit - History - Print - Recent Changes - Search
Page last modified on November 29, 2006, at 11:01 PM