文件夾操作

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<

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<

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

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.文件關聯

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';

}

71.激活一個程序或程序關聯的文件

72.HTTP下載

73.FTP下載

74.寫圖像到剪切板 setClipboardImage

75.從剪貼板復制圖像到窗體

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容