ruby-on-rails - 如何检查子链接文件是否存在

标签 ruby-on-rails ruby file

我在 rails projet 之外保存了一个文件,并在 rails 项目中创建了该文件的子链接,但是当我尝试检查 File.exists(sublink_file_path) 时,它返回 false。

例如:

 file_path = "shared/test.xls" #original file outside rails project.
 ln -nfs shared/test.xls current/tmp/test.xls #created a sublink in rails tmp folder. here current is my project folder.

现在像这样在 Controller 中获取文件路径

file_path = Rails.root + "tmp/test.xls"
File.exists?(file_path) #it return false but it should return true.

同时检查 File.exist?(file_path) 也返回 false。

如何检查 ruby​​ 中是否存在子链接文件?

我的目录结构:

 Work
   Project
     app
     config
     db
     tmp
     and so on...
  Shared

此处项目和工作文件夹内的同一级别共享。我确定我已更正文件路径和目录结构。我担心的是我们无法将子链接路径检查为文件。

File.exist?(file_path) 它将返回 true,因为文件路径是实际文件路径。

File.exist?(sublink_file_path) 我认为子链接文件路径不是返回 false 的文件

最佳答案

这不是 File.exists? 的问题,您只是创建了一个错误的符号链接(symbolic link)(链接路径错误)。

使用绝对路径:

ln -nfs `pwd`/shared/test.xls current/tmp/test.xls

或者使用相对路径:

ln -nfs ../../shared/test.xls current/tmp/test.xls

然后重试。

关于ruby-on-rails - 如何检查子链接文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344365/

相关文章:

Python 文件,获取文件并查找平均值

c - 如何在文件系统中实现类似碎片整理的方法

ruby-on-rails - 如何在我的 Rails 项目中使用 Rails Selectize?

ruby-on-rails - ruby RestClient 中的 curl 请求

mysql - 多对多关系的排序和过滤

javascript - AWS Cloudsearch Ruby SDK 在提供表达式时出现错误 : Found invalid value where JavaScript Object was expected

ruby - 为什么 s[n..-1] 在 ruby​​ 中可以工作?

c++ - ofstream- 将元素写入文件 - C++

javascript - 使用 jquery/ajax 请求从 Rails Controller 渲染多个参数

ruby - MonitorMixin 条件变量 -> 死锁