文件夾操作

1.創(chuàng)建文件夾

Dir.new %%1

Dir::mkdir #不指定目錄全名稱時(shí),缺省為工作目錄

Dir::chdir() 改變當(dāng)前腳本工作目錄

FileUtils.mkdir 'test'

file = File.new("cmd.txt")

file.each do |line|

puts line if line =~ /target/

end

2.創(chuàng)建文件

改變當(dāng)前根目錄

Dir.chdir("/home/guy/sandbox/tmp")

Dir.chroot("/home/guy/sandbox")

Dir.new %%1

#Dir::rmdir #不指定目錄全名稱時(shí),缺省為工作目錄

3.刪除文件

改變當(dāng)前根目錄

Dir.chdir("/home/guy/sandbox/tmp")

Dir.chroot("/home/guy/sandbox")

Dir.new %%1

#Dir::rmdir #不指定目錄全名稱時(shí),缺省為工作目錄

4.刪除文件夾

#require 'fileutils'

FileUtils.rm_r(%%1)

5.刪除一個(gè)文件下夾所有的文件夾

Dir::chdir

Dir::pwd屬性或者Dir.getwd()

#改變當(dāng)前腳本工作目錄

6.清空文件夾

Dir::chdir %%1 改變當(dāng)前腳本工作目錄

Dir::rmdir #不指定目錄全名稱時(shí),缺省為工作目錄

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.寫入隨機(jī)文件

#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

返回當(dāng)前子文件指針

Dir#pos=

設(shè)置子文件指針

Dir#rewind

設(shè)置子文件指針到起始位置

Dir#seek

設(shè)置子文件指針

Dir#tell

獲取當(dāng)前指針

10.讀取文件屬性

#文件中是否有內(nèi)容,(返回false為有內(nèi)容,返回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)

返回指定文件的最后訪問時(shí)間

11.寫入屬性

12.枚舉一個(gè)文件夾中的所有文件夾

#require 'ftools'

puts Dir.glob('**/*').each { | file | file.downcase }

#要區(qū)分目錄和普通文件我們這樣使用

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.復(fù)制文件夾

require "fileutils"

FileUtils.cp %%1,%%2

14.復(fù)制一個(gè)目錄下所有的文件夾到另一個(gè)文件夾下

#require 'FileUtils'

list=Dir.entries(%%1)

list.each_index do |x|

FileUtils.cp "#{list[x]}",%%2 if !File.directory?(list[x])

end

15.移動(dòng)文件夾

#require 'FileUtils'

FileUtils.mv %%1,%%2

16.移動(dòng)一個(gè)目錄下所有的文件夾到另一個(gè)目錄下

#require 'FileUtils'

list=Dir.entries(%%1)

list.each_index do |x|

FileUtils.mv "#{list[x]}",%%2 if !File.directory?(list[x])

end

17.以一個(gè)文件夾的框架在另一個(gè)目錄創(chuàng)建文件夾和空文件

#########################

//文件是否存在

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不是一個(gè)目錄

puts ("Creating #{File.expand_path(tar)}")

Dir.mkdir("#{File.expand_path(tar)}")#創(chuàng)建tar目錄

end

src=if FileTest.directory?(src) then

src#如果src是一個(gè)目錄名,則返回自身

else

File.dirname(src)#如果src為一個(gè)文件名,則返回該文件所在目錄

end

#Dir.foreach可以復(fù)制目標(biāo)路徑第一層目錄結(jié)構(gòu)而不復(fù)制子目錄

#~ Dir.foreach(src) do |dir|

#~ if FileTest.directory?(dir) && dir!=tar && dir!='..' &&dir!='.' then #忽略自身,忽略上級(jí)目錄"..",忽略本級(jí)目錄"."

#~ #puts dir

#~ begin

#~ Dir.mkdir("#{File.expand_path(tar)}/#{dir}")

#~ rescue#如果該目錄已存在則直接跳過否則創(chuàng)建該目錄

#~ end

#~ end

#~ end

#Find.find可以復(fù)制目標(biāo)路徑的完整目錄結(jié)構(gòu),包括子目錄

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)#忽略自身,忽略上級(jí)目錄"..",忽略本級(jí)目錄"."

dirs<

end

end

#puts dirs

dirs.each do |dir|

begin

Dir.mkdir("#{File.expand_path(tar)}/#{dir.gsub(src,'')}")

rescue#如果該目錄已存在則直接跳過否則創(chuàng)建該目錄

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不是一個(gè)目錄

puts ("Creating #{File.expand_path(tar)}")

Dir.mkdir("#{File.expand_path(tar)}")#創(chuàng)建tar目錄

end

src=if FileTest.directory?(src) then

src#如果src是一個(gè)目錄名,則返回自身

else

File.dirname(src)#如果src為一個(gè)文件名,則返回該文件所在目錄

end

#Dir.foreach可以復(fù)制目標(biāo)路徑第一層目錄結(jié)構(gòu)而不復(fù)制子目錄

#~ Dir.foreach(src) do |dir|

#~ if FileTest.directory?(dir) && dir!=tar && dir!='..' &&dir!='.' then #忽略自身,忽略上級(jí)目錄"..",忽略本級(jí)目錄"."

#~ #puts dir

#~ begin

#~ Dir.mkdir("#{File.expand_path(tar)}/#{dir}")

#~ rescue#如果該目錄已存在則直接跳過否則創(chuàng)建該目錄

#~ end

#~ end

#~ end

#Find.find可以復(fù)制目標(biāo)路徑的完整目錄結(jié)構(gòu),包括子目錄

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)#忽略自身,忽略上級(jí)目錄"..",忽略本級(jí)目錄"."

dirs<

end

end

#puts dirs

dirs.each do |dir|

begin

Dir.mkdir("#{File.expand_path(tar)}/#{dir.gsub(src,'')}")

rescue#如果該目錄已存在則直接跳過否則創(chuàng)建該目錄

end

end

end

end

18.復(fù)制文件

#require 'FileUtils'

FileUtils.cp %%1, %%2

19.復(fù)制一個(gè)目錄下所有的文件到另一個(gè)目錄

#require 'FileUtils'

list=Dir.entries(%%1)

list.each_index do |x|

FileUtils.cp "#{list[x]}",%%2 if !File.directory?(list[x])

end

20.提取擴(kuò)展名

21.提取文件名

%%2 = File.basename(%%1)

22.提取文件路徑

%%2 = File.dirname(%%1)

23.替換擴(kuò)展名

24.追加路徑

25.移動(dòng)文件

26.移動(dòng)一個(gè)文件夾下所有文件到另一個(gè)目錄

#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.打開對(duì)話框

29.文件分割

逐字節(jié)對(duì)文件進(jìn)行遍歷

可以使用each_byte方法,如果你想要轉(zhuǎn)換byte到字符的話使用chr方法:

file = File.new("myfile")

e_count = 0

file.each_byte do |byte|

e_count += 1 if byte == ?e

end

30.文件合并

逐字節(jié)對(duì)文件進(jìn)行遍歷

可以使用each_byte方法,如果你想要轉(zhuǎn)換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.合并一個(gè)文件下所有的文件

35.寫入ini文件屬性

36.獲得當(dāng)前路徑

File.dirname($0)

37.讀取XML數(shù)據(jù)庫

38.寫入XML數(shù)據(jù)庫

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.獲得應(yīng)用程序完整路徑

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.驗(yàn)證DTD

45.Schema 驗(yàn)證

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.直接創(chuàng)建多級(jí)目錄

#require "fileutils"

FileUtils.makedirs(%%1)

48.批量重命名

49.文本查找替換 ReplaceText

50.文件關(guān)聯(lián)

51.操作Excel文件

52.設(shè)置JDK環(huán)境變量

53.選擇文件夾對(duì)話框

54.刪除空文件夾

55.發(fā)送數(shù)據(jù)到剪貼板

56.從剪貼板中取數(shù)據(jù)

57.獲取文件路徑的父路徑

58.創(chuàng)建快捷方式 CreateShortCut

59.彈出快捷菜單

60.文件夾復(fù)制到整合操作

61.文件夾移動(dòng)到整合操作

62.目錄下所有文件夾復(fù)制到整合操作

63.目錄下所有文件夾移動(dòng)到整合操作

64.目錄下所有文件復(fù)制到整合操作

65.目錄下所有文件移動(dòng)到整合操作

66.對(duì)目標(biāo)壓縮文件解壓縮到指定文件夾

67.創(chuàng)建目錄副本整合操作

68.打開網(wǎng)頁

69.刪除空文件夾整合操作

70.獲取磁盤所有分區(qū)后再把光驅(qū)盤符去除(用"\0"代替),把結(jié)果放在數(shù)組allfenqu[] 中,數(shù)組中每個(gè)元素代表一個(gè)分區(qū)盤符,不包括 :\\ 這樣的路徑,allfenqu[]數(shù)組開始時(shí)存放的是所有盤符。

當(dāng)我用這樣的代碼測(cè)試結(jié)果是正確的,光驅(qū)盤符會(huì)被去掉:

CString root; //root代表盤符路徑

for(i=0;i<20;i++) //0-20代表最大的盤符數(shù)

{

root.Format("%c:\\",allfenqu[i]);

if(GetDriveType(root)==5)

allfenqu[i]='\0';

}

但我用這樣的代碼時(shí)結(jié)果卻無法去掉光驅(qū)盤符,allfenqu[]中還是會(huì)包含光驅(qū)盤符:

CString root;

for(i=0;i<20;i++)

{

root=allfenqu[i]+":\\";

if(GetDriveType(root)==5)

allfenqu[i]='\0';

}

71.激活一個(gè)程序或程序關(guān)聯(lián)的文件

72.HTTP下載

73.FTP下載

74.寫圖像到剪切板 setClipboardImage

75.從剪貼板復(fù)制圖像到窗體

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容