NewLine and File Separator in Ruby

编程技术  /  houtizong 发布于 3年前   87

ruby 1.8.6 on windows File.join总生成“/”作为File Separator:

 

File.expand_path(File.join(File.dirname(__FILE__),"..","lib"))#=> "C:/Documents and Settings/lib"

 而File::SEPARATOR也默认是"/"

 

File::SEPARATOR=> "/"

 尽管Windows API支持"/"和"\"两种形式。但是在cmd里面,windows却不能识别"/"。让人有点不爽...

似乎这个问题可以这样解决:

 

File::REAL_SEPARATOR = File::ALT_SEPARATOR || File::SEPARATORFile.join('dir','file').gsub(File::SEPARATOR,File::REAL_SEPARATOR)#on win => dir\name#on *nix => dir/name

 但是,为什么ruby不能自动根据平台自己决定separator呢?或是说为什么windows下默认separator不是"\"呢?

还有更糟糕的换行...

匹配或替换不同系统产生的换行问题很好解决,用正则\s很容易搞定。

不管怎么说File Separator已经在ruby里是一个常量存在。但是newline却只能硬编码成"\n"或"\r\n"

为什么没有一个这样的常量:String::NEWLINE 

在windows 返回 "\r\n",*nix返回 "\n"

 

不知道上面上面说的两个问题ruby里有没有一个优雅的解决方式呢?

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客