ruby文件操做

Ruby代碼php

  1. 1.#讀文件   
  2. 2.f = File.open("myfile.txt", "r")   
  3. 3.f.each_line do|line|   
  4. 4.puts "I read this line: #{line}"  
  5. 5.end  
  6. #讀文件
  7. f = File.open("myfile.txt", "r")
  8. f.each_line do|line|
  9. puts "I read this line: #{line}"
  10. end

Ruby代碼數據庫

  1. 1.File.foreach("myfile.txt") do|line|   
  2. 2.puts "I read this line: #{line}"  
  3. 3.end  
  4. File.foreach("myfile.txt") do|line|
  5. puts "I read this line: #{line}"
  6. end

Ruby代碼c#

  1. 1.f = File.open("myfile.txt", "r")   
  2. 2.line = f.gets   
  3. 3.puts "The line I read is: #{line}"  
  4. f = File.open("myfile.txt", "r")
  5. line = f.gets
  6. puts "The line I read is: #{line}"

Ruby代碼數組

  1. 1.#寫操做   
  2. 2.File.open('filename','w') do |f|   
  3. 3.  f.puts lines   
  4. 4.end  
  5. #寫操做
  6. File.open('filename','w') do |f|
  7.   f.puts lines
  8. end

Ruby代碼ruby

  1. 1.#獲得當前目錄全部文件名   
  2. 2.    files = Dir.glob('*.rd')  
  3. #獲得當前目錄全部文件名
  4.     files = Dir.glob('*.rd')

Ruby代碼框架

  1. 1.#刪除特定目錄全部文件名   
  2. 2.Dir.glob('*.rd').each{|f| File.delete f}  
  3. #刪除特定目錄全部文件名
  4. Dir.glob('*.rd').each{|f| File.delete f}

本文摘自互聯網.原文做者不詳.less

1.建立文件夾 
Dir.new %%1 
Dir::mkdir #不指定目錄全名稱時,缺省爲工做目錄 
Dir::chdir() 改變當前腳本工做目錄 
FileUtils.mkdir 'test' 
file = File.new("cmd.txt") 
file.each do |line| 
puts line if line =~ /target/ 
end 

2.建立文件 
改變當前根目錄 

Dir.chdir("/home/guy/sandbox/tmp")  
  
Dir.chroot("/home/guy/sandbox") 
Dir.new %%1 
#Dir::rmdir #不指定目錄全名稱時,缺省爲工做目錄 

3.刪除文件 
改變當前根目錄 
Dir.chdir("/home/guy/sandbox/tmp")  
Dir.chroot("/home/guy/sandbox") 
Dir.new %%1 
#Dir::rmdir #不指定目錄全名稱時,缺省爲工做目錄 

4.刪除文件夾 
#require 'fileutils'  
FileUtils.rm_r(%%1) 

5.刪除一個文件下夾全部的文件夾 
Dir::chdir 
Dir::pwd屬性或者Dir.getwd() 
#改變當前腳本工做目錄 

6.清空文件夾 
Dir::chdir %%1 改變當前腳本工做目錄 
Dir::rmdir #不指定目錄全名稱時,缺省爲工做目錄 
Dir.new %%1 

#require 'ftools' 
FileUtils.mkdir 'test' 
file = File.new(%%1)  #"cmd.txt" 
file.each do |line| 
puts line if line =~ /target/ 
end 

7.讀取文件 
#require 'ftools' 
File.open(%%1).readlines #'文件名' 

#require 'ftools' 
arr = IO.readlines(%%1)  #"myfile" 
lines = arr.size 
#puts "myfile has #{lines} lines in it." 
#longest = arr.collect {|x| x.length}.max 
#puts "The longest line in it has #{longest} characters." 


8.寫入文件 
f=open(%%1,"w") 
f.puts(%%2) 

9.寫入隨機文件 
#require 'ftools' 
file = File.open(%%1,"w")  
file.seek(5)  
str = file.gets # "fghi" 

#require 'ftools' 
File.open('文件名') 
File.open("cmd.txt","r") do |file| 
while line=file.gets 
puts line 
end 
end 
puts 
file=File.new("cmd.txt","r") 
file.each_line do |line| 
puts line 
end 
IO.foreach("cmd.txt") do |line| 
puts line if line =~ /target/ 
puts line if line !~ /target/ 
end 
### 
Dir#pos 
返回當前子文件指針 

Dir#pos= 
設置子文件指針 

Dir#rewind 
設置子文件指針到起始位置 

Dir#seek 
設置子文件指針 

Dir#tell 
獲取當前指針 

10.讀取文件屬性 
#文件中是否有內容,(返回false爲有內容,返回true爲空) 
File.new('文件名').stat.zero? 
#文件大小 
File.size?('文件名') 
flag1 = FileTest::zero?("file1") 
flag2 = FileTest::size?("file2") 
size1 = File.size("file1") 
size2 = File.stat("file2").size 
### 
File::atime(filename) 
返回指定文件的最後訪問時間 

11.寫入屬性 

12.枚舉一個文件夾中的全部文件夾 
#require 'ftools' 
puts Dir.glob('**/*').each { | file | file.downcase } 

#要區分目錄和普通文件咱們這樣使用 
file1 = File.new("/tmp") 
file2 = File.new("/tmp/myfile") 
test1 = file1.directory? # true 
test2 = file1.file? # false 
test3 = file2.directory? # false 
test4 = file2.file? # true 
### 
遍歷目錄 
Dir.foreach(%%1) { |entry| puts entry} 

13.複製文件夾 
require "fileutils" 
FileUtils.cp %%1,%%2 

14.複製一個目錄下全部的文件夾到另外一個文件夾下 
#require 'FileUtils' 
list=Dir.entries(%%1) 
list.each_index do |x| 
FileUtils.cp "#{list[x]}",%%2 if !File.directory?(list[x]) 
end 

15.移動文件夾 
#require 'FileUtils' 
FileUtils.mv %%1,%%2 

16.移動一個目錄下全部的文件夾到另外一個目錄下 
#require 'FileUtils' 
list=Dir.entries(%%1) 
list.each_index do |x| 
FileUtils.mv "#{list[x]}",%%2 if !File.directory?(list[x]) 
end測試

17.以一個文件夾的框架在另外一個目錄建立文件夾和空文件 
######################### 
//文件是否存在 
File.exist?('文件名') 
flag = FileTest::exist?("LochNessMonster") 
flag = FileTest::exists?("UFO") 
######################### 
require 'rubygems' 
require 'ruby-debug' 
require "find" 

module Cz_dirtools 

def mkdirs_to(tar,src=Dir.getwd) 
#debugger 
if tar.class==NilClass then 
puts "PLZ input target directory name..." 
return 
elsif !FileTest.directory?(tar)#若是tar不是一個目錄 
puts ("Creating #{File.expand_path(tar)}") 
Dir.mkdir("#{File.expand_path(tar)}")#建立tar目錄 
end 

src=if FileTest.directory?(src) then 
src#若是src是一個目錄名,則返回自身 
else 
File.dirname(src)#若是src爲一個文件名,則返回該文件所在目錄 
end 
#Dir.foreach能夠複製目標路徑第一層目錄結構而不復制子目錄 
#~ Dir.foreach(src) do |dir| 
#~ if FileTest.directory?(dir) && dir!=tar && dir!='..' &&dir!='.' then #忽略自身,忽略上級目錄"..",忽略本級目錄"." 
#~ #puts dir 
#~ begin 
#~ Dir.mkdir("#{File.expand_path(tar)}/#{dir}") 
#~ rescue#若是該目錄已存在則直接跳過不然建立該目錄 
#~ end 
#~ end 
#~ end 
#Find.find能夠複製目標路徑的完整目錄結構,包括子目錄 
dirs=Array.new 
Find.find(src) do |dir| 
unless !FileTest.directory?(dir) || File.basename(dir)==tar || File.basename(dir)=='..' || File.basename(dir)=='.' || File.basename(dir)==File.basename(src)#忽略自身,忽略上級目錄"..",忽略本級目錄"." 
dirs<<dir 
end 
end 
#puts dirs 
dirs.each do |dir| 
begin 
Dir.mkdir("#{File.expand_path(tar)}/#{dir.gsub(src,'')}") 
rescue#若是該目錄已存在則直接跳過不然建立該目錄 
end 
end 
end 

end 

require 'rubygems' 
require 'ruby-debug' 
require "find" 

module Cz_dirtools 

def mkdirs_to(tar,src=Dir.getwd) 
#debugger 
if tar.class==NilClass then 
puts "PLZ input target directory name..." 
return 
elsif !FileTest.directory?(tar)#若是tar不是一個目錄 
puts ("Creating #{File.expand_path(tar)}") 
Dir.mkdir("#{File.expand_path(tar)}")#建立tar目錄 
end 

src=if FileTest.directory?(src) then 
src#若是src是一個目錄名,則返回自身 
else 
File.dirname(src)#若是src爲一個文件名,則返回該文件所在目錄 
end 
#Dir.foreach能夠複製目標路徑第一層目錄結構而不復制子目錄 
#~ Dir.foreach(src) do |dir| 
#~ if FileTest.directory?(dir) && dir!=tar && dir!='..' &&dir!='.' then #忽略自身,忽略上級目錄"..",忽略本級目錄"." 
#~ #puts dir 
#~ begin 
#~ Dir.mkdir("#{File.expand_path(tar)}/#{dir}") 
#~ rescue#若是該目錄已存在則直接跳過不然建立該目錄 
#~ end 
#~ end 
#~ end 
#Find.find能夠複製目標路徑的完整目錄結構,包括子目錄 
dirs=Array.new 
Find.find(src) do |dir| 
unless !FileTest.directory?(dir) || File.basename(dir)==tar || File.basename(dir)=='..' || File.basename(dir)=='.' || File.basename(dir)==File.basename(src)#忽略自身,忽略上級目錄"..",忽略本級目錄"." 
dirs<<dir 
end 
end 
#puts dirs 
dirs.each do |dir| 
begin 
Dir.mkdir("#{File.expand_path(tar)}/#{dir.gsub(src,'')}") 
rescue#若是該目錄已存在則直接跳過不然建立該目錄 
end 
end 
end 

end 

18.複製文件 
#require 'FileUtils' 
FileUtils.cp %%1, %%2 

19.複製一個目錄下全部的文件到另外一個目錄 
#require 'FileUtils' 
list=Dir.entries(%%1) 
list.each_index do |x| 
FileUtils.cp "#{list[x]}",%%2 if !File.directory?(list[x]) 
end 

20.提取擴展名 

21.提取文件名 
%%2 = File.basename(%%1) 

22.提取文件路徑 
%%2 = File.dirname(%%1) 

23.替換擴展名 

24.追加路徑 

25.移動文件 

26.移動一個文件夾下全部文件到另外一個目錄 
#require 'FileUtils' 
list=Dir.entries(%%1) 
list.each_index do |x| 
FileUtils.mv "#{list[x]}",%%2 if !File.directory?(list[x]) 
end 

27.指定目錄下搜索文件 
#require "find"  
  
def findfiles(dir, name)  
 list = []  
 Find.find(dir) do |path|  
  Find.prune if [".",".."].include? path  
  case name  
   when String  
    list << path if File.basename(path) == name  
   when Regexp  
    list << path if File.basename(path) =~ name  
  else  
   raise ArgumentError  
  end  
 end  
 list  
end  
  
findfiles %%1,%%2 #"/home/hal", "toc.txt" 

28.打開對話框 

29.文件分割 
逐字節對文件進行遍歷 

  能夠使用each_byte方法,若是你想要轉換byte到字符的話使用chr方法: 

file = File.new("myfile")  
e_count = 0  
file.each_byte do |byte|  
 e_count += 1 if byte == ?e  
end 

30.文件合併 
逐字節對文件進行遍歷 

  能夠使用each_byte方法,若是你想要轉換byte到字符的話使用chr方法: 

file = File.new("myfile")  
e_count = 0  
file.each_byte do |byte|  
 e_count += 1 if byte == ?e  
end ui

 

31.文件簡單加密 

32.文件簡單解密 

33.讀取ini文件屬性 

34.合併一個文件下全部的文件 

35.寫入ini文件屬性 

36.得到當前路徑 
File.dirname($0) 

37.讀取XML數據庫 

38.寫入XML數據庫 

39.ZIP壓縮文件 
#require 'rubygems'  
#require 'zip/zipfilesystem' 
Zip::ZipFile.open(%%1, Zip::ZipFile::CREATE) do |zip|   #'zipfile.zip' 
zip.file.open('file1', 'w') { |f| f << 'This is file 1.' }   
zip.dir.mkdir('sub_dir')   
zip.file.open('sub_dir/file2', 'w') { |f| f << 'This is file 2.' }   
end 

40.ZIP解壓縮 

41.得到應用程序完整路徑 

42.ZIP壓縮文件夾 
#require 'rubygems'  
#require 'zip/zipfilesystem' 
def compress   
  Zip::ZipFile.open 'zipfile.zip', Zip::ZipFile::CREATE do |zip|   
    add_file_to_zip('dir', zip)   
  end  
end  
  
def add_file_to_zip(file_path, zip)   
  if File.directory?(file_path)   
    Dir.foreach(file_path) do |sub_file_name|   
      add_file_to_zip("#{file_path}/#{sub_file_name}", zip) unless sub_file_name == '.' or sub_file_name == '..'  
    end  
  else  
    zip.add(file_path, file_path)   
  end  
end  
add_file_to_zip %%1,%%2 

43.遞歸刪除目錄下的文件 
#require 'ftools' 
file_path = String.new 
file_path="D:" 
    if File.directory? file_path 
      Dir.foreach(file_path) do |file| 
        if file!="." and file!=".." 
puts "File:"+file 
        end 
      end 
    end 



44.驗證DTD 

45.Schema 驗證 

46.Grep 
#!/usr/bin/env ruby 
# Grep with full regexp-functionality via ruby 

if ARGV.shift == "-p" 
  pattern = Regexp.new(ARGV.shift) 
else 
  puts "Please give me a pattern with the '-p' option" 
  exit 
end 
ARGV.each do |filename| 
  File.open(filename) do |file| 
    file.each do |line| 
      puts "#{filename} #{file.lineno.to_s}: #{line}" if 
pattern.match(line) 
    end 
  end 
end 

Using it via: rgrep -p '/delete /i' *.php does not match anything, but 
this 
#!/usr/bin/env ruby 
# Grep with full regexp-functionality via ruby 

if ARGV.shift == "-p" 
  pattern = Regexp.new(ARGV.shift) 
else 
  puts "Please give me a pattern with the '-p' option" 
  exit 
end 
ARGV.each do |filename| 
  File.open(filename) do |file| 
    file.each do |line| 
      puts "#{filename} #{file.lineno.to_s}: #{line}" if /delete 
/i.match(line) 
    end 
  end 
end 

47.直接建立多級目錄 
#require "fileutils" 
FileUtils.makedirs(%%1) 

48.批量重命名 

49.文本查找替換 ReplaceText 

50.文件關聯this

51.操做Excel文件 52.設置JDK環境變量 53.選擇文件夾對話框 54.刪除空文件夾 55.發送數據到剪貼板 56.從剪貼板中取數據 57.獲取文件路徑的父路徑 58.建立快捷方式 CreateShortCut 59.彈出快捷菜單 60.文件夾複製到整合操做 61.文件夾移動到整合操做 62.目錄下全部文件夾複製到整合操做 63.目錄下全部文件夾移動到整合操做 64.目錄下全部文件複製到整合操做 65.目錄下全部文件移動到整合操做 66.對目標壓縮文件解壓縮到指定文件夾 67.建立目錄副本整合操做 68.打開網頁 69.刪除空文件夾整合操做 70.獲取磁盤全部分區後再把光驅盤符去除(用"\0"代替),把結果放在數組allfenqu[] 中,數組中每一個元素表明一個分區盤符,不包括 :\\ 這樣的路徑,allfenqu[]數組開始時存放的是全部盤符。 當我用這樣的代碼測試結果是正確的,光驅盤符會被去掉: CString root; //root表明盤符路徑 for(i=0;i<20;i++) //0-20表明最大的盤符數 { root.Format("%c:\\",allfenqu[i]); if(GetDriveType(root)==5) allfenqu[i]='\0'; } 但我用這樣的代碼時結果卻沒法去掉光驅盤符,allfenqu[]中仍是會包含光驅盤符: CString root; for(i=0;i<20;i++) { root=allfenqu[i]+":\\"; if(GetDriveType(root)==5) allfenqu[i]='\0'; } 

相關文章
相關標籤/搜索