move folder to orther folder

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

move folder to orther folder

Δημοσίευση από txc » 02 Ιαν 2010 12:17

kalispera paidia kai kali xronia se olous

mia erotisi
exo ena fakelo me onoma a kai allon enan me onoma b

o a fakelos exei arxeia mesa
tha ithela na metafero opos einai ton fakelo a me ta arxeia toy sto fakelo b

auto thelo na to kano giati argotera tha exo kai allous fakelous me arxeia kai tha thelo na tous metafero sto fakelo b kai autous

euxaristo

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

move folder to orther folder

Δημοσίευση από fafos » 02 Ιαν 2010 14:49

prepei na dhmiourghseis sthn arxh ton fakelo a mesa ston fakelo b me to mkdir()


meta pairneis ola ta arxeia pou exei o fakelos a me ena while kai ta metafereis ston fakelo b/a/:

Κώδικας: Επιλογή όλων

<? 
$afolder = "a"; //diadromh -path- gia ton fakelo me ta arxeia xoris slash!!
$bfolder = "b/"; //fakelos apothikeushs
mkdir&#40;$bfolder.$afolder, 0777&#41;; // dhmiourgia fakelou 
$afolder = $afolder.'/'; //vazoume to slash ston arxiko fakelo
$dir = dir&#40;$afolder&#41;; 

while&#40;$row = $dir->read&#40;&#41;&#41; &#123; 
 if &#40;$row!= "." && $row!= ".."&#41; &#123; 
 $oldfolder = $afolder . $row; 
 $newfolder = $bfolder.$afolder . $row; 
 $success = copy&#40;$oldfolder,$newfolder&#41;; 
 if &#40;$success&#41; &#123;
unlink&#40;$oldfolder&#41;;//diagrafh palion arxeion
echo 'to arxeio '.$row.' metaferthike epityxos!<br>';
 &#125;
 else die&#40;"oops! den metakinhsa ta arxeia apo ton fakelo $oldfolder"&#41;; 

 &#125; 
&#125; 

$dir->close&#40;&#41;; 
?> 

edo ego svhno ta arxeia meta thn metafora apo to fakelo a.. an thes na mhn ginetai auto aplos svhse thn grammh unlink($oldfolder);//diagrafh palion arxeion

an thes na svhseis ton fakello a meta thn metafora xrhsimopoihse thn rmdir() (ekso apo to while kai afou exeis svhsei ta arxeia apo mesa)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

move folder to orther folder

Δημοσίευση από cpulse » 02 Ιαν 2010 15:04

Νομίζω θα δούλευε και το

Κώδικας: Επιλογή όλων

rename&#40;'a', 'b/a'&#41;;

Άβαταρ μέλους
kamar
Δημοσιεύσεις: 13
Εγγραφή: 23 Σεπ 2009 17:40
Τοποθεσία: Χανιά

move folder to orther folder

Δημοσίευση από kamar » 02 Ιαν 2010 15:15

Κοίτα στο php manual:
copy
mkdir
opendir
readdir

Κώδικας: Επιλογή όλων


function copydirectory&#40;$apo,$se&#41;
&#123;
if&#40;!is_dir&#40;$se&#41;&#41;&#123;//Ελέγχου αν υπάρχει ο κατάλογος προορισμού...
$oldumask = umask&#40;0&#41;; 
mkdir&#40;$se, 01777&#41;; // ... και τον δημιουργούμε
umask&#40;$oldumask&#41;;
&#125;
$destdir=$se.'/'.$apo;// δημιουργούμε τον κατάλογο "a" μέσα στο "b"
if &#40;!is_dir&#40;$destdir&#41;&#41; &#123;
	$oldumask = umask&#40;0&#41;; 
	mkdir&#40;$destdir, 01777&#41;; 
	umask&#40;$oldumask&#41;;
&#125;
/*
 * Ανοίγουμε τον κατάλογο "a" και τον διαβάζουμε.
 * Κατόπιν αντιγράφουμε τα αρχεία του στο "b/a".
 */
$dir_handle = @opendir&#40;$apo&#41; or die&#40;"Δεν μπορώ να ανοίξω τον κατάλογο $apo."&#41;;
while &#40;$file = readdir&#40;$dir_handle&#41;&#41; 
&#123;
if&#40;$file!="." && $file!=".." && !is_dir&#40;"$apo/$file"&#41;&#41;
copy&#40;"$apo/$file","$destdir/$file"&#41;;
&#125;
closedir&#40;$dir_handle&#41;;
&#125;

Η κλήση γίνεται ως εξής:

Κώδικας: Επιλογή όλων

copydirectory&#40;"α","β"&#41;;
echo "Τέλος";
Το δοκίμασα σε linux και δουλεύει.
Περιορισμός: Οι κατάλογοι πρέπει να βρίσκονται στον ίδιο κατάλογο του script.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

move folder to orther folder

Δημοσίευση από fafos » 02 Ιαν 2010 15:17

cpulse έγραψε:Νομίζω θα δούλευε και το

Κώδικας: Επιλογή όλων

rename&#40;'a', 'b/a'&#41;;
nai an thes na xathoun o palios fakelos me ta arxeia.. genikos, to diko mou einai gia epimerous backups...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

move folder to orther folder

Δημοσίευση από cpulse » 02 Ιαν 2010 16:49

Move είναι.. γιατί να χαθούνε;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

move folder to orther folder

Δημοσίευση από fafos » 02 Ιαν 2010 18:21

cpulse έγραψε:Move είναι.. γιατί να χαθούνε;
o fakelos xanetai apo thn arxikh tou thesh... an exo sthn vash mou to path pros to palio fakelo prepei na to allasko se /b/a/ apo /a/..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

move folder to orther folder

Δημοσίευση από txc » 02 Ιαν 2010 19:34

kalispera kai pali
exo ena problima me ton arxiko kodika, exontas grapsei :

Κώδικας: Επιλογή όλων

<?php
$afolder = "todaytest"; //diadromh -path- gia ton fakelo me ta arxeia xoris slash!!
$bfolder = "eksamino/"; //fakelos apothikeushs
mkdir&#40;$bfolder.$afolder, 0777&#41;; // dhmiourgia fakelou
$afolder = $afolder.'/'; //vazoume to slash ston arxiko fakelo
$dir = dir&#40;$afolder&#41;;

while&#40;$row = $dir->read&#40;&#41;&#41; &#123;
 if &#40;$row!= "." && $row!= ".."&#41; &#123;
 $oldfolder = $afolder . $row;
 $newfolder = $bfolder.$afolder . $row;
 $success = copy&#40;$oldfolder,$newfolder&#41;;
 if &#40;$success&#41; &#123;
unlink&#40;$oldfolder&#41;;//diagrafh palion arxeion
echo 'to arxeio '.$row.' metaferthike epityxos!<br>';
 &#125;
 else die&#40;"oops! den metakinhsa ta arxeia apo ton fakelo $oldfolder"&#41;;

 &#125;
&#125;

$dir->close&#40;&#41;;
?>
 
opou todaytest einai o fakelos me ta arxeia
kai eksamino o fakelos pou tha dimiourgithei kai epeita mesa se auton tha ftiaktei o todaytest
ara to path tha einai : eksamino/todaytest

trexo ton kodika kai mou bgazei :

Κώδικας: Επιλογή όλων

Warning&#58; mkdir&#40;&#41; &#91;function.mkdir&#93;&#58; No such file or directory in C&#58;\xampp\htdocs\ptixiaki\admin\testt.php on line 4

Warning&#58; dir&#40;todaytest/&#41; &#91;function.dir&#93;&#58; failed to open dir&#58; No error in C&#58;\xampp\htdocs\ptixiaki\admin\testt.php on line 6

Fatal error&#58; Call to a member function read&#40;&#41; on a non-object in C&#58;\xampp\htdocs\ptixiaki\admin\testt.php on line 8

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

move folder to orther folder

Δημοσίευση από panosru » 10 Ιαν 2010 17:20

Γιατί δεν κάνεις χρήση του Shell? πχ:

Κώδικας: Επιλογή όλων

exec&#40;'cp -R ./folder_a ./copy_folder_a'&#41;;
αυτό θα αντιγράψει το folder_a στο copy_folder_a χωρίς να χαθεί το folder_a από την αρχική του θέση, αν θες να χαθεί από την αρχική του θέση το folder_a τότε αντί για cp βάλε mv στο exec.

Το exec ωστόσο σαν function είναι πολύ επικίνδυνη, προσωπικά την αποφεύγω αλλά για κάτι τέτοια την προτιμώ από το να εκτελώ μια τεράστια function :) απλά να το θέμα είναι ότι θέλει προσοχή στο input της function πχ σε καμία περίπτωση δεν βάζουμε $_POST, $_GET κτλ σε shell γιατί μπορεί κανείς "καλός" άνρθωπως να μας τρέξει τίποτα σαν και αυτό: rm -Rf και να λέμε γιατί δεν παίζει ο server οεο; :P

PS: η rename δουλεύει για φακέλους ωστόσο η copy δεν παίζει με φακέλους :)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες