2015-11-04 50 views
0

我想,以確定是否一個特定的.xml文件,我的桌面上運行存在額外的代碼之前。以下可信腳本位於我的Javascript文件夾級目錄中。下面評論爲「第一部分」的部分只是將表單的所有字段設置爲可打開/可寫。第二部分查找要從中導入XFA數據的.xml文件。檢查文件是否存在使用Acrobat JavaScript的

我的問題是,我試圖確定此.xml文件是否在首位存在。現在,如果它不存在,它會顯示一個對話窗口來瀏覽文件。 相反,如果xml文件不存在,我希望它顯示警報,並且從不顯示對話框。我究竟做錯了什麼?

任何幫助是巨大的,由於

CODE:

var myTrustFunctTwo = app.trustedFunction(function(doc) 
{ 

//First Part 
    for (var nPageCount = 0; nPageCount < doc.numPages; nPageCount++) { 
     var oFields = doc.xfa.layout.pageContent(nPageCount, "field"); 
    //app.alert(oFields,0); 
     var nNodesLength = oFields.length; 
     // Set the field property. 
     for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
      oFields.item(nNodeCount).access = "open"; 
     } 
    } 

//Second Part 
app.beginPriv(); 
doc.importXFAData({ 
      cPath:"/c/Users/ME/Desktop/Filled_In.xml" 
       }); 
app.endPriv(); 
}); 
app.trustedFunction(myTrustFunctTwo); 

更新代碼,包括try/catch塊

var myTrustFunctTwo = app.trustedFunction(function(doc) { 

    for (var nPageCount = 0; nPageCount < doc.numPages; nPageCount++) { 
     var oFields = doc.xfa.layout.pageContent(nPageCount, "field"); 
     //app.alert(oFields,0); 
     var nNodesLength = oFields.length; 
     // Set the field property. 
     for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
      oFields.item(nNodeCount).access = "open"; 
     } 
    } 


    try { 

     app.beginPriv(); 
     doc.importXFAData({ 
      cPath: "/c/Users/ME/Desktop/Filled_In.xml" 
     }); 
     app.endPriv(); 

    } catch (e) { 
     app.alert("No File Found", 1); 
    } 


}); 

app.trustedFunction(myTrustFunctTwo); 

回答

0

如果您嘗試導入該文件不存在,你會得到一個錯誤信息。使用try…catch,您可以捕獲該消息並退出該功能,從而防止後續代碼的運行。

+0

謝謝最大。我已經更新了我的問題以演示這些更改,但是現在發生的是這樣的:它進入'try'塊,它在桌面上找不到XML,因此我認爲它會進入'catch'塊,但它仍然顯示對話框...可能是因爲'doc.importXFAData'行不管(?)調用對話框。如果找不到文件,我需要它顯示警報*不顯示對話框。請幫忙,謝謝! – Mathomatic

+0

更新:我最終解決了這個代碼'app.beginPriv(); \t this.importDataObject(「myFile」,「/c/Users/ME/Desktop/Filled_In.xml」); \t var myData = this.getDataObject(「myFile」);'。這繞過了即時對話框,並顯示出您所說的錯誤。我用一個catch塊來執行必要的警報。謝謝Max – Mathomatic