Logo
MB CopyMCF-DIR :: Copying or Moving Files and Child Files from Source Dir to Destination Dir
Online Now: 1

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Snippets Functions Classes

Home | PHP Resources | MySQL Zipbase | Forums

Snippet Code
Copying or Moving Files and Child Files from Source Dir to Destination Dir
<?php
########################################################################################
#
#  project                 : MB CopyMCF-DIR
#  Version          : 1.0
#  Company          : MagicBrain/OFPG,Lda
#  Website          : http://www.magicbrain.biz
#  Author          : Octávio Filipe Gonçalves AKA Subv3rsion & Jorge Oliveira AKA Attack Beast
#  Propose                : Manipulate Folders and Files.
#                Copying or Moving Files and Child Files from Source Dir to Destination Dir.
#                Create Destination Dir From Master File Name without extension.
#                Detect a defined string in File Name.
#  Warning              : This script assumes all files in Source Dir don't exist in Destination Dir
#  last modified by       : Octávio Filipe Gonçalves AKA Subv3rsion
#  date                   : 30/10/2009 13:15
#  e-mail                  : magicbrain@magicbrain.biz
#
#  Copyright 2000-2009 MagicBrain/OFPG,Lda
#  MB CopyMCF-DIR is distributed under the terms of the GNU General Public License 
#
#  MB CopyMCF-DIR is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 3 of the License, or
#  (at your option) any later version.
#
#  MB CopyMCF-DIR is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
#  See the GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with MB CopyMCF-DIR; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
########################################################################################

/* --------------- START CONFIGURATION --------------- */

// DEFINE LOG FILE
$ob_file fopen('docs_digital.log','w');

// DEFINE SOURCE DIR
$dir_source "docs_digital";

// DEFINE DESTINATION DIR
$dir_destination "docs";

// DEFINE DESTINATION SUB-FOLDER
$dir_under_destination "history";

// DEFINE IF COPY OR MOVE FILES
// cp = TO COPY FILES
// mv = TO MOVE FILES
$copy_action "cp";

// DEFINE FILE TYPE TO COPY OR MOVE
$file_type "txt";

/* --------------- CONFIGURATION DONE. DON'T CHANGE NOTING --------------- */

function ob_file_callback($buffer)
{
  global 
$ob_file;
  
fwrite($ob_file,$buffer);
}

// Call Log Funtion and Start Log
ob_start('ob_file_callback');

// Start Copy/Move Function
function list_files($dirsource,$action,$dirdestination,$dirunderdestination,$filetype)
{
  if(
is_dir($dirsource))
  {
    if(
$handle opendir($dirsource))
    {
        
$array_dirsource = array();
        
        while((
$file readdir($handle)) !== false) {
            if (!
stristr($file,'_') && $file != "." && $file != "..") {
                
$array_dirsource array_merge($array_dirsource,(array)substr($file,0,-4));
            }
        }
        
        
// Print Array to LOG FILE
        
print_r($array_dir);
        
        foreach (
$array_dirsource as $dirdest) {
        
            
$path_dest="".$dirdestination."/".$dirdest."";
            
$path_under_dest="".$dirdestination."/".$dirdest."/".$dirunderdestination."";
            
            
// Verify if Destination Dir Exists
            
if (!is_dir("".$path_dest."")) {
                
exec("mkdir ".$path_dest." && mkdir ".$path_under_dest."");
                
// Print Message to LOG FILE
                
echo "Created Destination Dir: ".$path_dest." and Created Under Destination Dir: ".$path_under_dest."\n";
            }
            
            
// Verify if Destination Sub-Folder Exists
            
if (!is_dir("".$path_under_dest."")) {
                
exec("mkdir ".$path_under_dest."");
                
// Print Message to LOG FILE
                
echo "Created Under Destination Dir: ".$path_under_dest."\n";
            }
            
            
// Copy Master Files
            
exec("".$action." ".$dirsource."".$dirdest.".".$filetype." ".$path_under_dest."/");
            
// Print Message to LOG FILE
            
echo "Copy Master File: ".$dirsource."".$dirdest.".".$filetype." TO: ".$path_under_dest."\n";
            
            
// Copy Child Files
            
$i=1;
            while(
file_exists("".$dirsource."".$dirdest."_".$i.".".$filetype."")) {
                
exec("".$action." ".$dirsource."".$dirdest."_".$i.".".$filetype." ".$path_under_dest."/");
                
// Print Message to LOG FILE
                
echo "Copy Child File: ".$dirsource."".$dirdest."_".$i.".".$filetype." TO: ".$path_under_dest."\n";
                
$i++;
            }
        }
      
closedir($handle);
    }
  }
}

// Call Copy/Move Function
list_files("".$dir_source."/",$copy_action,$dir_destination,$dir_under_destination,$file_type);

// End and Close Log File ... All Done
ob_end_flush();
?>
 
Snippet Comments

Add Your Comment

software developers
2009-11-12 00:00:00
Nice post, This is very helpful... Anyway, thanks for the post

Add Your Comment

 
Snippet Tools
Rate this Snippet:

Rate the difficulty level:

Request Snippet Update


Suggested Difficulty Level: Advanced
Current Score: 5
Total votes: 1
Total Views: 863

Other top snippets by admin:

1. JPG to ASCII Converter
2. Add (th, st, nd, rd, th) to the end of a number
3. Dynamic Page Content From Links
4. AJAX Quickie
5. Simple Image CAPTCHA

Search

Input key terms:
User Panel

User name:

Password:

Register And Post Your Own Snippets

Snippets On Watch

1.  Auth Class with (2.83 of 87)

2.  Test Please Delete (2.83 of 30)

3.  Return all repeated (3.64 of 72)

4.  Convert an integer (3.3 of 71)

5.  URL Shortening for (2.75 of 52)

6.  Monthly Content Sorting (3 of 45)

7.  Show String Trimmed (2.97 of 65)

8.  Human readable file (2.01 of 70)

9.  Randomize array values (2.8 of 82)

10.  Create a recursive (3.35 of 55)

New Snippets

1.  Parse RFC822 date (4 of 1)

2.  Dynamic Image Uploading (5 of 1)

3.  Spam Filter (0 of 0)

4.  Is Multiple (0 of 0)

5.  Base64 Encode / (0 of 0)

6.  URL Encode / (0 of 0)

7.  temp openbills (0 of 0)

8.  Php Iban Validator (0 of 0)

9.  Mysql Table Builder (0 of 0)

10.  File size of (1.75 of 4)

11.  Mail from your (1 of 1)

12.  OddEven Class (0 of 0)

13.  Detect if a (1 of 1)

14.  MB CopyMCF-DIR :: (5 of 1)

15.  Upper/Lower Case Accented (0 of 0)

16.  Zodiac Signs (3 of 1)

17.  Really useful code (2.5 of 2)

18.  Calculate Central European (0 of 0)

19.  Email Attachment (4 of 1)

20.  ImageMagick Image Upload (0 of 0)

21.  convert plain html (2 of 2)

22.  Tag Builder (3.25 of 4)

23.  Get Inserted ID (4.33 of 3)

24.  Watermark An Image (3.33 of 3)

25.  Check Prime Numbers (1.5 of 8)

Home | Forum | Free PHP Web Hosting | Contact | Terms & Conditions |  
Donate
PHPSnips.com - ©2010