【问题标题】:How to get filepath to file in another folder unix?如何获取另一个文件夹 unix 中文件的文件路径?
【发布时间】:2018-06-19 16:57:02
【问题描述】:

我正在尝试将一个 Ruby 文件中的一些数据写入另一个文件夹中的文件,但我无法确定访问我要写入的文件的路径。

我当前的代码是:

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

我的文件夹结构如下:

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

此外,这是我得到的错误:

【问题讨论】:

  • 以后请尽量不要使用截图。对于目录打印输出,您可以使用tree 程序来获取可以复制和粘贴的内容,对于错误,您只需复制和粘贴即可。

标签: ruby linux file unix


【解决方案1】:

提供相对于工作目录的路径,而不是您调用 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"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2023-03-24
    • 2018-12-14
    • 1970-01-01
    • 2011-06-20
    • 2014-11-05
    • 2015-01-25
    相关资源
    最近更新 更多