Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kansion kopiointi

Sivun loppuun

vpt [26.05.2007 17:38:13]

#

Millähän koodilla onnistuu kansion ja sen sisältämien tiedostojen kopiointi toiseen kansioon?

Antti Laaksonen [26.05.2007 19:11:59]

#

Onko kysymys PHP:stä vai mistä? Ainakin yksi tapa on selvittää hakemiston tiedostot (glob) ja kopioida (copy) jokainen tiedosto erikseen. Jos hakemistossa on alihakemistoja, nämä pitää tutkia ja kopioida erikseen ja luoda vastaavat alihakemistot (mkdir), mikä menee jo vähän vaikeammaksi.

Tässä on esimerkki, joka kopioi tiedostot hakemistosta toiseen, mutta ei käsittele alihakemistoja:

<?php

$mista = "vanha/";
$minne = "uusi/";

// selvitetään tiedostot
$tiedostot = glob($mista . "*");

// kopioidaan tiedostot
foreach ($tiedostot as $nimi) {
    if (!is_dir($nimi)) {
        copy($nimi, $minne . basename($nimi));
    }
}

?>

jiku [29.05.2007 12:42:39]

#

tuossahan voi joissain tilanteissa mennä ali siitä missä aita on matalin ja käyttää shell_exec -functiota.

<?php print shell_exec('mkdir kopio');
  print shell_exec('cp -R /home/jani/ff/* kopio/');?>

cp -R parametrilla kopsii alihakemistot mukaan ja ilman sitä ei kopsi.

str4nd [29.05.2007 15:42:49]

#

jiku kirjoitti:

tuossahan voi joissain tilanteissa mennä ali siitä missä aita on matalin ja käyttää shell_exec -functiota.

Niin voi, muttei missään tapauksessa kannata. Huomaathan myös, että funktio kirjoitetaan k-kirjaimella.

tsuriga [29.05.2007 15:48:28]

#

Minkäs takia ee kannata?

Metabolix [29.05.2007 15:51:31]

#

tsuriga kirjoitti:

Minkäs takia ee kannata?

Jos vaikka joku innostuukin käyttämään Windowsia... Tai safemodea?

Olga [29.05.2007 18:51:30]

#

Ihan mielenkiinnosta... miten Windows estää shell_execin käytön? Safemode sen kyllä estää, se on ihan tosi.

ajv [29.05.2007 20:17:13]

#

Eiku tosa tarkotettiin varmaan sitä, et noi unix-komennot ei toimi windowsis.

hejppa [29.05.2007 20:59:04]

#

No mutta laitetaan ne unix-komennot toimimaan siinä Window$is!

Grey [29.05.2007 21:03:58]

#

hejppa kirjoitti:

No mutta laitetaan ne unix-komennot toimimaan siinä Window$is!

Ja Unixissa sitten Dos-komennot? Ehei, ehkä tehdään asiat oikeaoppisesti, niin ei tarvitse myöhemmin itkeä kun mikään ei toimi. System{"pause"}-ratkaisut ovat aina vähän kehnoja, jollei sitten tarkoitus ole nimenomaan käynnistää ohjelmaa, eikä suorittaa haluttuja komentoja..

-Grey-


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta