ãã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=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';
}
温馨提示:答案为网友推荐,仅供参考