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];
文章归档
文章标签
友情链接