1

次のコードでエラーが発生します:「mkdir:ファイルが存在します」。

    $path = 'c://wamp/www/et1/other';
    $new_location = 'c://wamp/www/et1/other/test';
    if(file_exists($path) && is_dir($path))
    {
        if(!file_exists($new_location))
        {               
            mkdir($new_location, 0777);
        }
    }

ただし、2番目のif条件を指定しないと、「mkdir:そのようなファイルまたはディレクトリはありません」というエラーが表示されます。また、mkdir($ new_location、077、true)を記述して再帰性を追加すると、エラーは発生しませんが、ディレクトリは作成されません。ここで何が間違っているのか理解できません。

4

3 に答える 3

1

このエラーは、PHP がまったく好まないパスの二重スラッシュが原因で発生します。に変更c://するc:/と、すべて正常に動作します。

0777ところで、モードとしてを指定する本当の理由はありません。それがデフォルトでもあるからです。

于 2012-11-05T15:25:29.140 に答える
0

それが新しいディレクトリ名が追加された$new_location現在のパスであると仮定します。再帰フラグを true に設定する$path必要があります。mkdirAllows the creation of nested directories specified in the pathname.

http://php.net/manual/en/function.mkdir.php

mkdir($new_location, 0777, true);
于 2012-11-05T15:05:03.653 に答える
0

エラーは自明です

Warning: mkdir() [function.mkdir]: No such file or directory in

親ディレクトリが存在しないことを意味します..作成するには再帰オプションを追加する必要がありparent directoryますcurrent directory

  mkdir($new_location, 0777, true);

それをしたくない場合は、常に親ディレクトリが存在するかどうかを確認してください

if (!is_dir(dirname($new_location)) || !is_writable(dirname($new_location)))
{
    trigger_error("Your parent does not exist");
}
于 2012-11-05T15:07:18.460 に答える