我目前正在学习Ruby并从事Hangman项目。这是我第一次使用File和YAML。
我正在尝试实施保存/加载游戏的方法。我已经决定我希望最多有3个保存文件,如果用户在此之后尝试保存游戏,则会要求他们删除以前的保存文件。
到目前为止,这是我在Github上的程序链接(道歉,它需要重构):https://github.com/d-zer0/hangman/blob/master/hangman.rb hangman.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上这样做。
谢谢!
答案 0 :(得分:1)
#{game_files[index.to_i]}
正在评估空字符串,并且您正在尝试取消链接目录。