美文网首页
文件夹操作

文件夹操作

作者: 素还真人 | 来源:发表于2018-01-30 10:26 被阅读0次

    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.从剪贴板复制图像到窗体

    相关文章

      网友评论

          本文标题:文件夹操作

          本文链接:https://www.haomeiwen.com/subject/crbqzxtx.html