RUBY语言怎么判断指定目录是否存在

Python019

RUBY语言怎么判断指定目录是否存在,第1张

ruby中判断目录是否存在:

File.directory?(argu)

ruby文件操作:使用File类的静态方法,或者File类的实例对象

File类的静态方法

File::atime(filename)

返回指定文件的最后访问时间

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

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=0i<20i++) //0-20代表最大的盘符数

{

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

if(GetDriveType(root)==5)

allfenqu[i]='\0'

}

但我用这样的代码时结果却无法去掉光驱盘符,allfenqu[]中还是会包含光驱盘符:

CString root

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

{

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

if(GetDriveType(root)==5)

allfenqu[i]='\0'

}

ruby的汉语意思如下:

n.

红宝石深红色。

adj.

红宝石的红宝石色的。

ruby的读音是:英 [ˈruːbi]   美 [ˈruːbi] 。

ruby的造句如下:

1、RDT is a far more full-featured Ruby IDE with a ton of exciting and time-saving options.

RDT是一个功能更为完善的Ruby开发环境,具备许多令人兴奋并且可以节省大量开发时间的选项。

2、Rich ruby color with tastes of black cherry, full plum and soft vanilla and toffee notes.

酒体呈漂亮的宝石红色,富含蓝莓和熟李子的果香,以及优雅的香草及太妃糖香气。

3、Download and install Ruby libraries easily.

容易地下载和安装ruby库。

4、Tasting notes: A bright ruby red colour with attractive purple hues.

品酿笔记:酒泽如红宝石般明亮动人,但又透露著 * 紫色于其中。

5、Deep ruby coloured with purple reflections in the first years and tending to orange when older.

深宝石红,年轻时泛紫色边缘,随着时间变化会慢慢转成橘黄色。

6、The origin of Ruby Fall.

红宝石瀑布的起源.

取英文名这件事真的不太容易

要么被外国人吐槽:

要么在语境中使用有点嗯~:

比如KittyHappy

别人向你打招呼:Hello,Kitty!

自我介绍时:Hello,I’m Happy!

I'm so gan ga!

根据记得住不野的原则,整理100个简短好听的女生英文名,供小伙伴参考,如果有考虑不周之处,欢迎指正!

目录分为:

2个音节的英文名

3个音节的英文名

一、2个音节的英文名

1、Anna     安娜

2、Annie    安妮

3、Amy      艾米

4、Anya     安雅

5、Ayla       艾拉

6、Carla     卡拉

7、Dolly     朵莉

8、Dora     朵拉

9、Enya     恩雅

10、Etta    艾塔

11、Evie    伊唯

12、Faye   菲伊

13、Fia      菲雅

14、Ivy      艾薇

15、Kaia    凯雅

16、 Karen 凯伦

17、Kate    凯特

18、kayla   凯拉

19、Kerr     可儿

20、Lana    拉娜

21、Lola     萝拉

22、Luna    露娜

23、Laira    莱拉

24、Mia      蜜雅

25、Mika    米卡

26、Mira    米拉

27、Mina   米娜

28、Molly   茉莉

29、Nora    诺拉

30、Nova   诺娃

31、Pearl    佩儿

32、Rae      蕊伊

33、Shirley 雪莉

34、Suki     苏琦

35、Una     乌娜

36、Willa    薇拉

37、Zoe      佐伊

38、Zora    佐拉

二、3个音节的英文名

39、Adeline     艾德琳

40、Alana        阿拉娜

41、Alina         阿丽娜

42、Alyssa       阿丽莎

43、Amari        阿玛丽

44、Amber      安玻儿

45、Annika      安妮卡

46、Aoife         爱儿芙

47、Arwen       阿尔玟

48、Athena      阿西娜(雅典娜)

49、Audrey      奥德丽

50、Aurora       欧若拉 

51、Bianca       比安卡

52、Blair          布莱尔

53、Caroline    卡洛琳

54、Catherine   凯瑟琳

55、Celia           希丽亚

56、Charlotte    夏洛特

57、Chloe          可洛伊

58、Claire          可莱尔

59、Clara           可莱拉

60、Cleo            可丽欧

61、Clove           可洛芙

62、Colette        可莱特

63、Cynthia        辛西娅

64、Diana           戴安娜

65、Edith            伊迪丝

66、Eleanor        埃莉诺

67、Elena            伊莉娜

68、Elise             伊丽丝

69、Eliza             伊丽莎

70、Elodie          伊洛蒂

71、Elowen         伊洛玟

72、Elsie             艾尔茜

73、Emily            艾米丽

74、Esther           艾丝特

75、Fiona             菲欧娜

76、Flora              芙萝拉  

77、Freya              芙瑞雅  

78、Grace              格蕾丝 

79、Helena            海伦娜  

80、Imogen           伊墨金     

81、Iris                   艾蕊丝

82、Jasmine           婕丝敏

83、Joanna             乔安娜

84、Josephine         乔瑟芬

85、Kiara                 琪雅拉

86、Lilith                 莉莉丝 

87、Livia                  莉薇雅 

88、Lydia                 莉蒂雅

89、Nadia                娜蒂雅

90、Natali                娜塔莉

91、Natasa               娜塔莎

92、Nyx                    妮可丝

93、Odette               奥黛特

93、Oliva                  奥莉娃

94、Olive                  奥莉芙  

95、Orla                    奥尔拉  

96、Rosalie               萝莎莉

97、Scarlett              斯嘉莉

98、Stella                  斯黛拉

99、Sylvie                 希尔薇

100、Talia                 塔丽雅

以上,希望有你喜欢的!