Я знаю, что стандарт C не дает мне возможности делать что-либо с папками, но мне нужен довольно переносимый и межплатформенный способ доступа к папкам. В это время все, что мне нужно сделать, это создать папку, проверить, существует ли папка и, возможно, удалить папку. В ближайшем будущем мне может потребоваться прочитать файлы из папки, но это не очень настоятельная необходимость.Библиотеки C для доступа к каталогам
В любом случае, мне было интересно, есть ли хорошая кросс-платформенная библиотека C для работы с каталогами. В абсолютном значении я могу, вероятно, свернуть свой собственный, чтобы работать на POSIX и Windows, но мне было интересно, есть ли там какие-то хорошие. Я рассматриваю GLib или Apache Portable Runtime, но у обоих есть лот больше, чем мне действительно нужно, и я хотел бы сохранить это довольно легким. Я также рассмотрел использование внутренних компонентов популярного языка сценариев, таких как Perl или Python, но это также кажется большим количеством накладных расходов только для функций каталога.
Если у кого-то есть что добавить в этот список, который я должен изучить или хочу сделать хороший пример для одного из вариантов, которые я уже перечислял, скажите, пожалуйста. Я не хочу звучать так, как будто я прошу код, но если вы разместили простую функцию, например int direxist(char *dirname)
, которая вернула true, если каталог существует, а false - иначе, просто чтобы проиллюстрировать API для выбранной вами библиотеки, это было бы действительно удивительно, и я думаю, что не слишком сложно. Если вы хотите отстаивать использование POSIX/катите мою собственную, сделайте это тоже, потому что я присоска для изучения новых вещей, подобных этому, делая это сам.
Просто убедитесь, что я хочу C, а не C++. Я уверен, что повышение - это хорошо, но меня не интересуют решения на C++.
Я нахожусь в OS X, поэтому для меня нет бесплатного GLib. Я иногда чувствую, что OS X - рыжеволосый stepchild переносимости ОС - несмотря на то, что он довольно близок к POSIX, никто не очень много думает об этом. Я не хочу использовать Python, потому что я не знаю Python (пока), и я бы предпочел написать его в C (личное предпочтение). Я не против добавления зависимости, но сначала хотел бы узнать мои варианты. –
@Chris: если GTK + работает на OS X, я уверен, что GLib работает. Я предполагаю, что этот пакет содержит GLib: http://www.gtk-osx.org/. –
Я проверил - этот пакет содержит GTK + и GLib, но он устанавливается под папками Xcode, и я обычно работаю через командную строку, так что это немного неудобно. Я посмотрю, что я могу сделать. –