Как создать каталог в Lua?

Можно ли создать каталог в lua? Если так, то как?

Ответы на вопрос(4)

Решение Вопроса

с "система» вызов (или что-то в этом роде, это из памяти), который вы можете использовать для запуска произвольной программы, которая может включать команду mkdir.

РЕДАКТИРОВАТЬ: Я нашел свойПрограммирование в Lua книга. На странице 203 упоминается, как вы могли бы использовать

os.execute("mkdir " .. dirname)

к "не настоящие" команда создания каталога.

РЕДАКТИРОВАТЬ 2: Принять к сведению Джонас ТимПредупреждение о том, что этой командой можно злоупотреблять, если имя каталога происходит из ненадежного источника!

 J. T.12 авг. 2014 г., 22:32
Этот ответочень опасно, Как только ваш dirname содержит; следуя реальным командам bash, вы настраиваете себя на хороший эксплойт выполнения произвольной команды. Будьте очень осторожны, чтобы правильно избегать dirname - или просто пропустите этот дурной совет и используйте вместо этого LuaFileSystem, чтобы делать все правильно.
 Carl Smotricz14 авг. 2014 г., 08:41
Спасибо за указание на то, чтоs (сейчас) библиотека LuaFileSystem для таких вещей! Я'Мы проголосовали за ответ, который рекомендует его использовать. Но вы также упрекнули автора Lua за то, что он рекомендовал эту технику в его собственной книге?os.execute() подход идеально подходит, если имена каталогов взяты из надежных источников, например, будучи жестко закодированным в программе, он имеет то преимущество, что не требует никаких библиотек, выходящих за рамки стандарта Lua.
 Warren Young06 нояб. 2009 г., 23:42
Философия дизайна Lua заключается в том, чтобы быть чистым ISO C, чтобы быть переносимым на все, что связано с компилятором C. В стандартной библиотеке C нет функции создания каталога. Это оставлено только для специфичных для платформы расширений, таких как mkdir (2) в системах POSIX и CreateDirectory * () в Windows.
 Wookai06 нояб. 2009 г., 23:43
Спасибо ;) ! Я знал, что смогу выполнить такой вид execute (), но мне было интересно, есть ли альтернатива Lua ... Я думаю, что нетт;)
 J. T.21 авг. 2014 г., 04:20
Правильное удаление имени файла не является тривиальным, и даже если автор Lua рекомендует его, я бы посоветовал против этого. Лучше использовать правильную библиотеку расширений. Это работает, да, но это не такне безопасно, кроме случаев, когда тыВы очень хорошо знакомы с возможными эксплойтами (и есть много символов, которые могут показаться обычными в имени файла, но они сделают что-то в bash и неожиданно введут выполнение произвольной команды в ваше простое создание каталога), или если имя файла жестко закодировано. Если автор неЯ добавил такой сильный совет безопасности, тогда яЯ бы сказал, что раздел в книге должен быть пересмотрен.

привязку Apache Portable Runtime для Lua. Документы можно найти наВот

Одна из причин, по которой я использую Lua, заключается в том, что я могу писать код для нескольких операционных систем. Некоторое время я использовал LFS, но обнаружил, что использование Lua / APR обеспечивает более независимую от платформы библиотеку. И есть много других полезных процедур в АТР.

Вы можете найтиLuaFileSystem библиотека полезная. Он имеет функцию MKDIR.

require "lfs"
lfs.mkdir("/path/to/dir")
 Wookai09 нояб. 2009 г., 21:43
Спасибо за ссылку! Я могу'На данный момент я пользуюсь другими библиотеками, поэтому яЯ буду придерживаться версии os.execute (), но яЯ буду помнить LuaFileSystem в следующий раз!

Вы можете использоватьпути пакет вместо. Тогда вы можете просто сделать:

require 'paths'

paths.mkdir('your/dir')

Ваш ответ на вопрос