本文的起因在
这里。在松底迪的鼓励和指导下,做了一个我认为合理的File实现,规则如下:
1. 追加String的to_file方法
ruby 代码
- "c:/temp/test.txt".to_file.exist?
2. 区分File对象的new和open,只有当需要对File的内容进行操作时,才open。
3. 推荐的new操作只有一个初始化参数即路径名,open方法只有mode及其它参数,一次典型的调用如下:
ruby 代码
- "name".to_file.open("mode") do |file|
- xxxxxxx
- end
但为了照顾部分人的喜好,继承ruby胸怀宽广的传统,仍保留带open参数的new方式,如:
ruby 代码
将按mode打开文件
4. 如果open调用带有block,则内部保证在block执行完毕后close文件,否则需要显示close.
ruby 代码
- file = File.new("c:\\temp\\test.txt")
- puts file.open.readlines
- file.close
ruby 代码
- ”somefile.txt“.to_file.open { |file|
- puts file.readlines
- }
4. 维持原File类的静态open方法的语义,典型调用如下:
ruby 代码
- File.open("name", "mode") { |f|
- f.xxx
- }
5. 不需要了解文件内容,如信息查询等操作,全部作为instance method,包括:
ruby 代码
- :directory?, :file?, :readable?, :owned?, :pipe?, :mtime?, :extname, :ftype,
- :executable_real?, :executable?, :dirname, :exist?, :basename, :blockdev?,
- :chardev?, :atime, :chmod, :chown, :ctime, :delete, :grpowned?, :lchmod, :stat,
- :readable_real?, :readlink, :rename, :setgid, :setuid, :size, :size?, :socket?,
- :split, :sticky, :symlink?, :truncate, :writable?, :writable_real, :zero?
详情请参考ruby的缺省File实现的文档
6. 对于目录,追加each遍历方法,并去掉恶心的“.", ".."两个东西,每一个遍历项是一个新的File对象,典型调用如下:
ruby 代码
- File.new("/dir").each { |child|
- if child.directory?
- ......
- else
- .....
- end
- }
7. 追加文件实例的create方法
ruby 代码
- "/somedir/somefile".to_file.create
追加opened?方法,查询文件是否已被打开
维持path语义,返回构造时提供的路径名,类型为字符串,不做normalize
8. 其它功能均维持File的原状。
代码见附件,使用时在自己的脚本前require一下即可。
分享到:
- 2007-04-30 13:46
- 浏览 2629
- 评论(0)
- 论坛回复 / 浏览 (0 / 3106)
- 查看更多
相关推荐
《全面解析"Palette CAD Deluxe Rubbish Scripts"与"Deluxe Rubbish_paletteCAD_Rubbish!"》 在IT行业中,设计工具的使用对于提高工作效率和创作质量至关重要。"Palette CAD Deluxe Rubbish Scripts"是一款专为设计...
rubbish-debug.apk
垃圾分类 MYSQL表结构 分类数据 包含两张表,京版分类及数据,'可回收物','是指在日常生活中或者为日常生活提供服务的活动中产生的,已经失去原有全部或者部分使用价值,回收后经过再加工可以成为生产原料或者经过...
1、数据处理 1.1 修改data-config中的路径为自己图片存放路径, 并在该路径下创建train-img test-img valid-img 三个文件夹,把分类好的数据放在train-img中 1.2 运行data_preparation_val 把90%数据作为训练 10%...
以"water_rubbish.zip"命名的压缩包文件,正是这样一个专注于水环境中的垃圾识别的数据集,它为科研人员和开发者提供了宝贵的资源,推动了智能识别技术在环保领域的应用。 该数据集的标签包含了七种常见的水生垃圾...
Delete-Maven-Rubbish.bat
而标签“Rubbish! aircraft”同样没有直接关联到IT领域的具体知识点。压缩包子文件的文件名称虽然提及"Influencer_Marketing_For_Brands",这可能是指影响者营销的资料,但没有足够的信息来生成超过1000字的IT专业...
"RubbishTool"是一个可能用于学习和研究目的的开源项目,从其名称和标签"垃圾代码, Rubbish Code"来看,我们可以推测这可能是一个专门用于解析、分析或处理不良编程实践或者低质量代码的工具。这样的工具对于理解并...
通过语音识别模块ASR M08-B进行垃圾分类的语音识别,当说出具体垃圾名后,语音播报模块播放出具体垃圾分类名,同时对应分类的垃圾桶自动开盖(舵机旋转实现),延时指定时间后,垃圾桶自动合盖(舵机旋转实现)
基于python用深度学习实现垃圾分类识别,包含数据集,识别准确率在90%左右,有注释,代码简洁易懂。
垃圾分类原始数据库,包含物品名称、类别名称、类别代号等,类别有干垃圾、湿垃圾、可回收物、有害垃圾
这是一个批处理文件,几乎能删除任何文件夹,文件以增加磁盘的可用空间。
2024年全国大学生电子设计竞赛_只能垃圾分类系统_开源代码_stm32H7_rubbish_code
1. 绪论 第一节 医学遗传学的性质 医学遗传学的定义:医学与遗传学相结合,以人类为研究对象,以遗传病为研究内容,具体 研究遗传病的发生机理、传递方式、诊断方法、治疗措施、再发风险的预测和如何预防等。...
2. **打开文件**:使用`open`方法以二进制写入模式(`ios::out | ios::binary`)打开名为"rubbish.dat"的文件。二进制模式下,数据将以原生机器格式写入,不经过任何转换,这对于存储和传输复杂数据结构特别有用。 3....
《基于Torchversion的垃圾分类目标检测技术解析》 在当今环保意识日益增强的时代,垃圾分类作为一项重要的环保举措,正逐渐在全球范围内推广。它通过科学管理,不仅能够提高资源的再利用率,减少环境污染,还能有效...
为了更好地适应和解决这一问题,“维尼TR”(Throw Rubbish)服务应运而生,致力于将互联网技术与垃圾回收服务相结合,创新性地提供垃圾分类代扔服务,并在运营模式上进行深入研究。 首先,垃圾分类代扔服务是针对...
mysql 垃圾分类数据表 sql文件,里面包含了当前所有分类数据。
在“note-rubbish”这个看似杂乱无章的学习资源包中,隐藏着丰富的Java编程知识。这个压缩包可能是一个个人的学习记录或者项目代码库,虽然没有明确的组织结构,但我们可以从“java学习笔记”这个描述中推测,它包含...