Я пытаюсь реализовать диалог с файлом, используя Tk. Этот аспект сработал, но моя проверка ошибок не работает.
Так как этот файловый диалог может принимать только определенные расширения, я сделал так, чтобы он вызывал LoadError, но я также не хочу, чтобы программа остановилась, я хочу его открыть, чтобы позволить пользователю выбрать другой файл.
Каждый способ, который я пробовал, заканчивался бесконечным l oop или ошибкой LoadError, останавливавшей программу.
Мой код:
module FileExplorer
require 'tk'
require 'tkextlib/tile'
def self.fileDialog
TkClipboard.append(Tk.getOpenFile)
f = TkClipboard.get
begin
unless extenstionCheck(f)
raise LoadError, 'Please select a valid file type'
end
rescue LoadError
fileDialog
end
end
def self.extenstionCheck(file)
filetypes = ['.xlsx', '.xls', '.csv', '.xml']
type = File.extname(file)
true if filetypes.include?(file)
end
end