$files=file('big_files.csv');
$source = "M:\\xampp\\htdocs\\media_old\\thumbs\\";
$destination = "M:\\xampp\\htdocs\\media\\";
// To check the number of files
echo count($files).'<br>';
//Just to make sure path variables are right
echo $source.'</br>';
echo $destination.'</br>';
foreach($files as $file) {
$orgfile=$source.$file;
echo 'Source is '.$orgfile.'</br>';
$newfile=$destination.$file;
echo 'Destination is '.$newfile;
if (!copy($orgfile, $newfile)) {
echo "failed to copy $file...</br>";
}
echo "<b>Done</b> </br>";
}
输出:
Source is M:\xampp\htdocs\media_old\thumbs\1323442022d41e3-big-1.jpg
Destination is M:\xampp\htdocs\media\1323442022d41e3-big-1.jpg
Warning: copy(M:\xampp\htdocs\media_old\thumbs\1323442022d41e3-big-1.jpg ): failed to open stream: Invalid argument in M:\xampp\htdocs\cvsprint.php on line 17
未能复制1323442022d41e3-big-1.jpg ... 完成
Source is M:\xampp\htdocs\media_old\thumbs\132328900923a0b-big-2.jpg
Destination is M:\xampp\htdocs\media\132328900923a0b-big-2.jpg
Warning: copy(M:\xampp\htdocs\media_old\thumbs\132328900923a0b-big-2.jpg ): failed to open stream: Invalid argument in M:\xampp\htdocs\cvsprint.php on line 17
未能复制132328900923a0b-big-2.jpg ... 完成
Source is M:\xampp\htdocs\media_old\thumbs\132328935409b14-big-1.jpg
Destination is M:\xampp\htdocs\media\132328935409b14-big-1.jpg
Warning: copy(M:\xampp\htdocs\media_old\thumbs\132328935409b14-big-1.jpg ): failed to open stream: Invalid argument in M:\xampp\htdocs\cvsprint.php on line 17
未能复制132328935409b14-big-1.jpg ... 完成
所以我通过xampp调用它并继续得到该错误。我虽然因为它是windoz它需要是绝对的路径,但尝试它的方式和相对两者都不起作用,也没有向前斜线。我扔了一些回声,看看它想要复制什么。如果我剪切并将它们移到Windows资源管理器中,它会在预览中弹出它们。
背景:我有一个包含6个版本文件的目录,它们的格式如filename-big-x.jpg。我只想将我仍在使用的相关文件移动到新目录。它们都是不同的版本,因此我进行了文件名的数据库转储。现在我有一个只有文件名作为单独行的csv文件。所以现在我想读取该文件并将我想保留的文件复制到一个新目录。