Android — не может удалить пустую папку в переполнении стека

Я хочу удалить пустая папка с помощью remove() в C ++ на Windows 7, но я не могу. Я старался rmdir() вместо remove() затем папка была удалена!
Тем не менее, причина, почему я не использую rmdir() связано с Android. В проекте библиотеки для Android я не могу включить заголовок «direct.h», поэтому не могу использовать rmdir(), или. В отличие от Windows, функция remove() хорошо работает на Android. Я не понимаю почему.

Кто-нибудь знает, почему это происходит?

Или любые другие функции, которые будут работать как на Windows, так и на Android?

0

Решение

Это довольно распространенная проблема при написании кроссплатформенных программ.

Иногда библиотека может предоставить нужную вам абстракцию. Например, Увеличение имеет библиотеку файловой системы, которая может перечислять файлы, манипулировать каталогами и т. д. на разных платформах, используя один и тот же код.

Кроме того, обычно есть определенные символы, которые позволяют вам определить, какой компилятор в данный момент создает ваш код. Даже если нет того, кто делает то, что вы хотите, вы можете определить свой собственный.

Допустим, вам нужно собрать программное обеспечение для двух разных вымышленных операционных систем с именем FooOS и BarOS. Я собираюсь изобрести два символа, FOO_OS а также BAR_OS, В моем коде я могу сделать что-то вроде этого:

#ifdef FOO_OS
#include <foo_stuff.h>
#elseif BAR_OS
#include <bar_stuff.h>
#endif

void do_something()
{
#ifdef FOO_OS
do_it_this_way();
#elseif BAR_OS
do_it_that_way();
#endif
}

Теперь нам просто нужно определить FOO_OS или же BAR_OS, Это можно сделать через конфигурацию проекта среды IDE или из командной строки компилятора. Используйте Google, чтобы узнать о вашей конкретной ситуации, поскольку вы не включили эти данные в свое сообщение.

Существует этап предварительной обработки, когда вы компилируете свой код, который проходит через источник и применяет эти условные операторы. Следующий проход на самом деле компилирует код. Вот, например, некоторая документация о препроцессоре Visual Studio.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]