ruby批量修改文件创建时间-创新互联

电脑里面的相片,因为复制来,复制去的.时间不太对.然后传到iphone就乱了.那边是以创建时间什么的来排序.然后折腾了一个脚本改创建时间.网上搜索了一下.没看见有什么好办法可以改. 只有使用一个比较SB的方法了.

创新互联公司主要业务有网站营销策划、网站设计、做网站、微信公众号开发、小程序制作、H5页面制作、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网整合营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

首先把相片的exif信息中的时间取出,然后把系统时间改为这个时间.再复制一下.OK

考虑有的jpg可能没有拍摄时间,就以创建时间和修改时间去比较,按比较小的来.

require 'exifr'
require 'fileutils'
require 'find'
dist_dir = "D:/Old/Pic"

def chang_ctime(name)
temp_dir = File.join(name.split('/')[0..-2]).sub('Old','New')
unless Dir.exist?(temp_dir)
	FileUtils.mkdir_p(temp_dir)
end
if File.file?(name)
if name[-4..-1].downcase == '.jpg'
	temp_date = EXIFR::JPEG.new(name).date_time_original.to_s
	if temp_date.size != 0
		temp_date = temp_date.split	
		`date #{temp_date[0]}`
		`time #{temp_date[1]}`
		FileUtils.cp name, name.sub("Old","New")
	else
		if File.ctime(name) > File.mtime(name)
			temp_date = File.mtime(name).to_s.split
			`date #{temp_date[0]}`
			`time #{temp_date[1]}`
		else
			temp_date = File.ctime(name).to_s.split
			`date #{temp_date[0]}`
			`time #{temp_date[1]}`		
		end
		FileUtils.cp name, name.sub("Old","New")
	end
else
	if File.ctime(name) > File.mtime(name)
		temp_date = File.mtime(name).to_s.split
		`date #{temp_date[0]}`
		`time #{temp_date[1]}`
	else
		temp_date = File.ctime(name).to_s.split
		`date #{temp_date[0]}`
		`time #{temp_date[1]}`		
	end
	FileUtils.cp name, name.sub("Old","New")
end
end
end

Find.find(dist_dir) do |path|
	chang_ctime(path)
end

puts "OK"

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享标题:ruby批量修改文件创建时间-创新互联
网页路径:https://www.cdcxhl.com/article28/gcejp.html

成都网站建设公司_创新互联,为您提供小程序开发手机网站建设定制网站外贸网站建设网站设计公司网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设