0

请找到以下代码:

current_dir = Dir.pwd
Dir.chdir('C:\Documents and Settings\Peter\My Documents\userdata\Downloaded Files')
current_dir = Dir.pwd

Dir.entries(current_dir)[2..-1].each do |dir|

  puts dir
  puts "-------"
  Dir.entries(dir)[2..-1].each do |d|

    #file_loc_dir =
    #File.rename(d, dir.concat(d))
    puts File.realdirpath(d ,dir)
    #puts dir.concat(d)

  end
  puts "-------"
end

输出:

C:\Documents and Settings\peter\My Documents\userdata\Ruby\Scripts>FileNamere
naming.rb
D07141
-------
C:/Documents and Settings/peter/My Documents/userdata/Downloaded Files/D07141
/Water lilies.jpg
C:/Documents and Settings/peter/My Documents/userdata/Downloaded Files/D07141
/Winter.jpg
-------
D07141101
-------
C:/Documents and Settings/peter/My Documents/userdata/Downloaded Files/D07141
101/Water lilies.jpg
C:/Documents and Settings/peter/My Documents/userdata/Downloaded Files/D07141
101/Winter.jpg

混乱:

puts dir给出D07141D07141101File.realdirpath(d ,dir)给出扩展的目录名称。你能澄清一下逻辑吗?

4

1 回答 1

2

从文档中:

返回实际文件系统中路径名的真实(绝对)路径名。真实路径名不包含符号链接或无用的点。

如果给出了 dir_string,它将用作解释相对路径名的基本目录,而不是当前目录。

真实路径名的最后一个组件可能不存在。

http://apidock.com/ruby/v1_9_3_125/File/realdirpath/class

它被扩展了,因为这就是该方法的作用。您不是在调用puts内部调用 dir #entries,而是在 的返回值上调用它,File.realdirpath如上所述,它扩展了传入的条目。

于 2013-01-30T08:20:39.087 回答