1

あるディレクトリから別のディレクトリにファイルを移動したいと考えています。ただし、トリックは、パス全体でファイルを移動したいということです。

にファイルがあるとします

/my/current/directory/file.jpg

そして、私はそれをに移動したいと思います

/newfolder/my/current/directory/file.jpg

ご覧のとおり、相対パスを保持したいので、将来/my/current/directory/必要に応じて元に戻すことができます。もう1つ/newfolderは空です-そこには何でもコピーできるので、事前に作成された構造はありません(別のファイルがにコピーされる可能性があります/newfolder/my/another/folder/anotherfile.gif。理想的には、オリジナルを渡すときに魔法を行うメソッドを作成できるようにしたいと思いますファイルへのパス。宛先は常に同じです -/newfolder/...

4

2 に答える 2

0

あなたは単に以下を使うことができます

<?php 
$output = `mv "/my/current/directory/file.jpg" "/newfolder/my/current/directory/file.jpg"`; 
if ($output == 0) { 
   echo "success"; 
} else { 
   echo "fail"; 
} 
?>

execのような関数を使用する代わりに、バックティック`を使用して実行していることに注意してください

于 2012-09-09T07:23:56.977 に答える
0

UNIX / Linux環境を使用している場合は、次のような方法を試すことができます。

$original_file = '/my/current/directory/file.jpg';
$new_file = "/newfolder{$original_file}";

// create new diretory stricture (note the "-p" option of mkdir)
$new_dir = dirname($new_file);
if (!is_dir($new_dir)) {
    $command = 'mkdir -p ' . escapeshellarg($new_dir);
    exec($command);
}

echo rename($original_file, $new_file) ? 'success' : 'failed';
于 2012-09-09T07:41:16.883 に答える