【发布时间】:2016-06-30 16:36:01
【问题描述】:
我目前正在学习 Ruby 并从事一个 Hangman 项目。这是我第一次使用 File 和 YAML。
我正在尝试实现保存/加载游戏的方法。我已经决定我希望最多有 3 个保存文件,如果用户在此之后尝试保存游戏,他们会被要求删除以前的保存文件。
这是我目前在 Github 上的程序的链接(抱歉,它需要重构):https://github.com/d-zer0/hangman/blob/master/hangman.rbhangman.rb
这是用于删除文件的代码:
game_files = Dir.entries("saved_games").select { |f| f.include?(".sav") }
game_file = "saved_games/#{game_files[index.to_i]}"
File.delete(game_file) #delete file
运行程序时,当我选择要删除的文件时出现此错误:
hangman.rb:49:in `delete`: Permission denied @ unlink_internet - saved_games/ (Errno::EACCES)
from hangman.rb:49:in `save_game'
from hangman.rb:113:in `play'
from hangman.rb:38:in `new_game'
from hangman.rb:25:in `start_menu'
from hangman.rb:15:in `initialize'
from hangman.rb:172:in `new'
from hangman.rb:172:in `<main>'
谁能告诉我为什么会出现这个错误以及如何解决它?我不知道这是否有帮助,但我正在 Windows 上执行此操作。
谢谢!
【问题讨论】:
-
运行此代码的用户是否有权实际执行删除操作?
-
是的,我在管理员帐户上运行它。
标签: ruby file yaml delete-file