Самый очевидный вопрос: возможно ли написать контент в макете, не разрушая его? Я имею в виду, если имя файла слишком длинное, это нормально, что дизайн ломается. Но даже если бы он идеально подходил, дизайн ломается.
Код делает именно то, что вы написали. Команда puts
снова печатает пробелы, hashbang, вертикальную линию, затем пробелы, имя файла и заданное количество пробелов. Чтобы исправить его результат, вам нужно отрегулировать длину имени файла до некоторого предела, добавив пробелы в конец. Для этой цели вы можете использовать метод ljust :
puts " #| #{files}. #{entry.to_s.ljust(35)} |#"
С этим кодом имя файла будет дополнено пробелами длиной до 35 символов.
следующий вопрос: в каталоге всего 3 файла. Но я получил 5 результатов .. почему? Что это за точки и как от них избавиться?
Это специальные скрытые файлы. .
для самого каталога, ..
для его родительского каталога. Смотрите здесь для более подробной информации. Вы можете пропустить их так, например:
Dir.entries("./database/").select { |entry| !%w[. ..].include?(entry) }.each do |entry|
...
Другой вариант - использовать children method:
Dir.children("./database/").each do |entry|
...
последний вопрос: если я спрашиваю пользователя, какой файл он хочет удалить. как я могу убедиться, что выбрал правильный, потому что 1-3 просто генерируется файлом + = 1, поэтому я не могу знать, что такое пользователи 1 или 2.
Hm. Я не думаю, что это хорошая идея на самом деле. В многопроцессорных системах другой процесс может удалить файл в каталоге после того, как вы напечатали его содержимое, но до того, как пользователь сделает выбор. В результате выбран неверный файл.