php - Hvordan slette symlinks med phing?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan kan jeg slette symlinks med phing, så det vil fungere på Windows også?


Oprettelse af en symlink er let og fungerer cross-platform:


<symlink 
    target="${sharedPath}zend-framework/ZendFramework-${version.zf}/library/Zend/" 
    link="library/Zend" />


Men heller ikke


<delete dir="symlinked folder" />


heller ikke


<delete file="symlinked folder" />


vil fjerne symlinket.


Hvordan gør man det?





Yderligere Information:



  • Jeg kører phing 2.4.10

  • Phing udsender faktisk [[slet]] sti til slettet fil/mappe, men symlinket er stadig der bagefter. så der er ingen fejlmeddelelse og ingen åbenlys fejl.


Bedste reference


Det skyldes, at symlink, som du opretter på Windows, ikke er en reel symlink, men snarere. LNK-fil.
Så det er en mappe, men ikke et link. Således sletter som en fil ikke arbejde.


Så du kan heller ikke bruge nogle Windows Special Exec til at oprette faktiske symlink (men eksistensen af ​​dem afhænger af version og/eller privilegier - se f.eks. På http://technet.microsoft.com/en-us/sysinternals/bb896768 for at få yderligere oplysninger om kryds), ​​eller brug en skræmmende metode til testning, hvis den givne fil faktisk er en .LNK-fil (se http://www.php.net/manual/en/function.is-link.php#91249)[4]]] [5]