2012-02-13 109 views
4

如何使用phing刪除符號鏈接,以便它也可以在Windows上運行?如何用phing刪除符號鏈接?

創建一個符號鏈接是容易的,能跨plattform:

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

但無論

<delete dir="symlinked folder" /> 

也不

<delete file="symlinked folder" /> 

將刪除符號鏈接。

如何做到這一點?


其他信息:

  • 我跑phing 2.4.10
  • Phing實際輸出[刪除]路徑刪除的文件/文件夾,但符號鏈接仍然存在之後。所以沒有錯誤信息,也沒有明顯的失敗。
+0

您是否知道發生了哪種故障?快速瀏覽源代碼,看起來應該支持鏈接。 ** DeleteTask.php **在支持鏈接的_PhingFile_實例上運行。看起來有很多地方是Phing試圖說明失敗可能是什麼,所以我想知道這是不是在這裏被捕獲。至少你可以在代碼流過這些文件時調試代碼(DeleteTask.php&PhingFile.php)。 – quickshiftin 2012-02-14 05:55:48

+0

您正在運行什麼版本的Phing? – Michiel 2012-02-14 16:28:25

+0

@quickshiftin請參閱我的更新。 – markus 2012-02-14 20:46:12

回答

2

這是因爲您在Windows上創建的符號鏈接不是真正的符號鏈接,而是.LNK文件。 所以,它是一個目錄,但不是一個鏈接。因此,作爲文件刪除不會工作。

因此,您既不能使用某些Windows專用的exec來創建實際的符號鏈接(但是這些文件的存在取決於版本和/或權限 - 例如在http://technet.microsoft.com/en-us/sysinternals/bb896768處查看junction的詳細信息),或者使用一些可怕的方法來測試文件實際上是一個.LNK文件(請參見http://www.php.net/manual/en/function.is-link.php#91249