当前位置:  开发笔记 > 后端 > 正文

如何在ruby中安全加入路径名?

如何解决《如何在ruby中安全加入路径名?》经验,为你挑选了2个好方法。

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

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

- 但在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

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



1> csexton..:

我建议使用File.join

>> File.join("path", "to", "join")
=> "path/to/join"



2> Daniel Von F..:

有一点需要注意.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

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有