Создать папку, если она еще не существует

Наверное, у вас уже есть правильный ответ, но вот мой. Вместо использования списка для сбора нефильтрованных данных (что делает метод readlines()), я использую два файла. Один из них предназначен для хранения основных данных, а второй для фильтрации данных при удалении определенной строки. Вот код:

main_file = open('data_base.txt').read()    # your main dataBase file
filter_file = open('filter_base.txt', 'w')
filter_file.write(main_file)
filter_file.close()
main_file = open('data_base.txt', 'w')
for line in open('filter_base'):
    if 'your data to delete' not in line:    # remove a specific string
        main_file.write(line)                # put all strings back to your db except deleted
    else: pass
main_file.close()

Надеюсь, вы найдете это полезным! :)

586
задан Marc 8 January 2016 в 19:00
поделиться

3 ответа

Попробуйте следующее:

if (!file_exists('path/to/directory')) {
    mkdir('path/to/directory', 0777, true);
}

Обратите внимание, что 0777 уже является режимом по умолчанию для каталогов и все еще может быть изменен текущей umask.

1165
ответ дан 22 November 2019 в 21:58
поделиться

Сначала необходимо проверить, существует ли каталог file_exists('path_to_directory')

Затем использование mkdir(path_to_directory) для создания каталога

mkdir( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] ) : bool
[еще 117] приблизительно mkdir () здесь

Полный код здесь:

$structure = './depth1/depth2/depth3/';
if (!file_exists($structure)) {
    mkdir($structure);
}
1
ответ дан 22 November 2019 в 21:58
поделиться

Как насчет вспомогательной функции вроде этой:

function makeDir($path)
{
     $ret = mkdir($path); // use @mkdir if you want to suppress warnings/errors
     return $ret === true || is_dir($path);
}

Она вернет true, если каталог был успешно создан или уже существует, и false, если каталог не удалось создать.

Альтернатива лучше следующая (не должна выдавать никаких предупреждений):

function makeDir($path)
{
     return is_dir($path) || mkdir($path);
}
56
ответ дан 22 November 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: