Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未从Ruby中的HDD中删除的已删除文件_Ruby_File_Delete File - Fatal编程技术网

未从Ruby中的HDD中删除的已删除文件

未从Ruby中的HDD中删除的已删除文件,ruby,file,delete-file,Ruby,File,Delete File,我在Ruby中删除文件时遇到了一个奇怪的情况,代码似乎报告正确,但物理文件没有从硬盘中删除。我可以在命令行上执行rm path/to/file,这很有效。我甚至可以打开Rails控制台和File.safe_取消文件链接,这也可以工作,它只是在我的Rails应用程序中,无法删除实际文件: def destroy Rails.logger.debug local_path #=> /Users/ryan/.../public/system/.../file.jpg Rails.logg

我在Ruby中删除文件时遇到了一个奇怪的情况,代码似乎报告正确,但物理文件没有从硬盘中删除。我可以在命令行上执行
rm path/to/file
,这很有效。我甚至可以打开Rails控制台和File.safe_取消文件链接,这也可以工作,它只是在我的Rails应用程序中,无法删除实际文件:

def destroy
  Rails.logger.debug local_path #=> /Users/ryan/.../public/system/.../file.jpg
  Rails.logger.debug File.exist?(local_path) #=> true
  File.safe_unlink(local_path)
  Rails.logger.debug File.exist?(local_path) #=> false
  # yet the physical file actually STILL exists!
end
物理文件在Git repo中(repo存储在/public/system/)有什么问题吗?我已经尝试使用RubyGitGem使用它提供的rm命令删除该文件,但这也不能删除该文件

我在测试期间打开了所有文件的权限,但仍然没有任何功能。我还用File.writable?(local_path)确认了这一点,该文件返回true


你知道为什么它会阻止删除该文件吗?

你检查过该目录的权限了吗?删除是一种目录写入操作,而不是文件写入操作。(
rm
也会检查文件的perms,出于礼貌,询问您是否真的想这样做,如果文件是写保护的;但是如果目录不可写,它会断然拒绝。)

您检查过目录的权限了吗?删除是一种目录写入操作,而不是文件写入操作。(
rm
也会检查文件的烫发,出于礼貌,问你是否真的想这样做,如果文件是写保护的;但是如果目录不可写,它会断然拒绝。)

好的,我想我自己也要面对现实了。我从来不知道这是目录级权限,谢谢!好吧,我想我只是把脸藏起来了。我从来不知道这是目录级权限,谢谢!