2014-07-14 2 views
1

생성하기 전에 파일이 존재하지 않는지 테스트하고 싶습니다.파일이 존재하지 않는 경우 생성 전제 조건

isFileExist와 같은 것을 사용할 수 있습니까?

[template public generate(conf : Configuration) ? (isFileExist('/path/to/file.txt'))] 
[file ('/path/to/file.txt', false, 'UTF-8')] 
file content 
[/file] 
[/template] 

미리 감사드립니다.

답변

1

방금 ​​가지고있는 문제와 동일한 문제가 있었으며 마침내 외부 Java 클래스에서이 함수를 "외부화"하여 작동 시켰습니다. 그 방법은, 그냥 같은 방법을 정의 할 수 있습니다 :

public boolean existsFile(String filepath) { 
    Path p = Paths.get(filepath); 
    p.normalize(); 
    File f = new File(filepath); 
    return f.exists(); 
} 

다음과 같은 쿼리를 정의하여 Acceleo에서 호출 : 귀하의 예제에서,

[query public existsFile(filePath : String): 
    Boolean = invoke('utils.AcceleoUtils', 'existsFile(java.lang.String)', Sequence{filePath}) 
/] 

이 방법, 당신은 할 수

pd : 'file '태그는 기본적으로 대상 경로의 파일을 출력하므로 절대 경로를 제공하지 않으므로 o를 호출 할 때 r existsFile 함수 안에 있습니다.

+0

그래서 우리는 사전 가드를 사용하지 않습니다. 나는 [file /] 태그가 [if /] 태그로 묶일 수 있다는 것을 몰랐다. 고맙습니다. –