首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ruby中做一个安全的连接路径名?

如何在ruby中做一个安全的连接路径名?
EN

Stack Overflow用户
提问于 2009-02-28 04:25:50
回答 2查看 93.9K关注 0票数 219

我的Rails开发环境是基于Windows的,生产环境是基于Linux的。

有可能会使用VirtualHost。假设需要使用File.open('/tmp/abc.txt', 'r')引用/public文件夹中的一个文件名。

-but在Windows中它应该是C:\tmp\abc.txt。我如何做一个正确的路径连接来处理两个不同的环境?

prefix_tmp_path = '/tmp/'
filename = "/#{rand(10)}.txt"

fullname = prefix_tmp_path + filename # /tmp//1.txt <- but I don't want a double //

当我得到prefix_tmp_path = "C:\tmp\"时,我得到了C:\tmp\/1.txt

处理这两种情况的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-28 04:33:39

我推荐使用File.join

>> File.join("path", "to", "join")
=> "path/to/join"
票数 376
EN

Stack Overflow用户

发布于 2009-02-28 04:39:42

有一件事需要注意。Ruby在包括Windows在内的所有平台上都使用"/“作为文件分隔符,因此您实际上不需要使用不同的代码来将不同平台上的东西连接在一起。"C:/tmp/1.text“应该可以正常工作。

File.join()是将路径连接在一起的朋友。

prefix_tmp_path = 'C:/tmp'
filename = "#{rand(10)}.txt"
fullname = File.join(prefix_tmp_path, filename) # e.g., C:/tmp/3.txt
票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/597488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档