2012-11-05 54 views
0

我有一個Groovy腳本來複制能正常工作的文件,直到我嘗試添加複製文件屬性的選項,即保留​​時間戳。使用Files.copy時無法識別文件複製選項

這工作:

import java.nio.file.* 

def fileEx = new File(/Y:\Documents\Test File.txt/) 
def fileDest = new File(/Y:\Documents\Test File copied with Groovy and Nio.txt/) 

def fileExPath = fileEx.toPath() 
def fileDestPath = fileDest.toPath() 

Files.copy(fileExPath, fileDestPath) 

但這種失敗:

import java.nio.file.* 

def fileEx = new File(/Y:\Documents\Test File.txt/) 
def fileDest = new File(/Y:\Documents\Test File copied with Groovy and Nio.txt/) 

def fileExPath = fileEx.toPath() 
def fileDestPath = fileDest.toPath() 

Files.copy(fileExPath, fileDestPath, COPY_ATTRIBUTES) 

與錯誤:

Caught: groovy.lang.MissingPropertyException: No such property: COPY_ATTRIBUTES for class: temp 
groovy.lang.MissingPropertyException: No such property: COPY_ATTRIBUTES for class: temp 
    at temp.run(temp.groovy:9) 

我試圖把COPY_ATTRIBUTES單引號和雙引號,但這沒有幫助。請有人能告訴我我做錯了什麼嗎?

回答

3

你需要參考枚舉類:

Files.copy(fileExPath, fileDestPath, StandardCopyOption.COPY_ATTRIBUTES) 
+0

謝謝,已經解決了這一問題。 你知道爲什麼我看到的代碼示例中沒有一個需要引用enum類嗎?我是否省略了導入聲明或其他內容? –

+1

您可以執行StandardCopyOption.COPY_ATTRIBUTES的靜態導入,這也可以起作用 – sbglasius

+0

謝謝,這有助於使代碼看起來更簡單。 –