ruby - 如何获取另一个unix文件夹中文件的文件路径?

标签 ruby linux file unix

我正在尝试将一个 Ruby 文件中的一些数据写入另一个文件夹中的文件,但在识别要写入的文件的路径时遇到问题。

我当前的代码是:

File.write('../csv_fixtures/loans.csv', 'test worked!')

我的文件夹结构如下: enter image description here

我尝试在“run_spec.rb”中运行代码并写入“loans.csv”。

此外,这是我收到的错误: enter image description here

最佳答案

给出相对于工作目录的路径,而不是您调用 File.write 的文件的路径。工作目录是您在调用 ruby​​ 代码之前通过 cd 导航到的位置。如果您从项目的根目录运行 rspec,那么工作目录也将是根目录。因此,在本例中,看起来应该是 ./spec/csv_fixtures/loans.csv。您可以运行 puts Dir.pwd 来查看所有路径应相对于的工作目录。

如果您想要更像 require_relative 的东西,则必须使用某种解决方法将其转换为绝对路径,例如 File.dirname(__FILE__) 它给出包含当前文件的文件夹的绝对路径:

path = File.join(File.dirname(__FILE__, "../csv_fixtures/loans.csv"))

关于ruby - 如何获取另一个unix文件夹中文件的文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50933451/

相关文章:

linux - 根据条件将 file.txt 拆分为两个文件

linux - Laravel 5.2 不适用于 vagrant homestead php 7

ruby - 如何获取 `/var` 及其子目录中的所有文件并忽略列出的文件夹名称?

linux - 将命令更改为不 fork 和耗尽资源的命令

c++ - 试图给变量在C++中的ifstream

java - 如何获取公共(public)存储路径?外部存储(非 SD 卡)

javascript - 在 Nodejs 中解析大型 JSON 文件

ruby - 验证和规范化偏序集

ruby - 如何用 ruby​​ 向后读取文件然后向前读取文件?

ruby - 具有 NaN 值的变量在 Ruby 中不等于自身