0

この関数の何が問題なのかわかりません。$date/$recid「media/magazines」ディレクトリ内にディレクトリを作成しようとしています。この関数は時々それを作成しますが、時々警告を表示します

Warning: mkdir() [function.mkdir]: No such file or directory in C:\wamp\www\locallink\cpl_locallink\magazine.php on line 77
Call Stack

サーバーとしてwampを使用して、Windows 7で使用しています。

4

4 に答える 4

4

これを試して:

mkdir('../media/magazines/'.$id, 0755, True)

ここでの主なポイントは、新しい引数です。3 番目の引数Trueは、mkdirディレクトリを再帰的に作成する必要があることを示しています。再帰がオフになっている場合、すべての親ディレクトリは既に存在../media/している必要があります (この場合)。ただし、再帰がオンになると、それらは自動的に作成されます。

于 2012-07-01T19:40:12.047 に答える
1

パスにスラッシュが含まれている場合、' mkdir ' 関数は Windows で正しく機能しません。スラッシュを含むパスの部分は作成されません。

mkdir('c:/a/b/c/d', 0775, true);

次のエラー メッセージが表示される: 警告: mkdir() [function.mkdir]: そのようなファイルまたはディレクトリはありません

Windows ではバックスラッシュを使用するか、定数 DIRECTORY_SEPARATOR を使用してください。

mkdir('c:\a\b\c\d', 0775, true);
mkdir('c:'.DIRECTORY_SEPARATOR.'a'.
DIRECTORY_SEPARATOR.'b'.
DIRECTORY_SEPARATOR.'c'.
DIRECTORY_SEPARATOR.'d', 0775, true);
于 2012-07-01T19:40:49.357 に答える
0

ディレクトリを 1 つずつ作成する必要があります。$date/$recid は 2 です。

mkdir($date);
mkdir($date."/".$recid);
于 2012-07-01T19:41:39.637 に答える
0

同じコマンド内で 2 つのディレクトリを作成することはできません。これは 2 つの手順で行う必要があります。

if (!file_exists($date)) {

    mkdir($date);
}

if (!file_exists($date . '/' . $recid)) {

    mkdir($date . '/' . $recid);
}

編集:

再帰パラメーターを使用できます。

mkdir($date . '/' . $recid, 0755, true);
于 2012-07-01T19:41:41.617 に答える