如何在Ruby中编写删除文件方法?

时间:2016-06-30 16:36:02

标签: ruby file yaml delete-file

我目前正在学习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上这样做。

谢谢!

1 个答案:

答案 0 :(得分:1)

#{game_files[index.to_i]}正在评估空字符串,并且您正在尝试取消链接目录。