「MyDir」という名前のディレクトリがあります。私はUbuntuOSを使用しています。そして、私はさまざまな拡張子を持つ7つのファイルを持っています。各ファイルにタイムスタンプを追加するRubyプログラムを作成したいと思います。
質問する
1712 次
2 に答える
1
ターゲットディレクトリ内のすべてのファイルのリストを取得し(を参照Dir.glob(...)
)、ファイルを開いて「追加モード」(を参照File.open(...)
)で書き込み、タイムスタンプを書き込む必要があります。例えば:
def add_timestamps(dir, timestamp=Time.now)
Dir[File.join(dir, '*')].each do |filename|
File.open(filename, 'a') { |f| f.puts(timestamp) }
end
end
add_timestamps('MyDir') # OR...
add_timestamps('MyDir', Time.parse('2001-02-03T04:05:06Z'))
于 2012-07-27T14:44:06.017 に答える
0
ファイル名に追加したい場合
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") }
# or dont add timestamp on files that are ending with 10 digits
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") unless /\.\d{10}$/.match(x) }
#if you want to add it to the end of the file's content
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.open(x,'a') { |f| f.write("\n#{t}\n") } }
于 2012-07-27T12:40:32.537 に答える