2016-07-26 60 views
0

我在我的Ionic項目的www文件夾中放置了一個名爲kml的文件夾。我想看看文件夾中是否存在文件,但我不確定應該使用哪條路徑。目前,我只對iOS(模擬器和真實設備)進行過測試,並且已經使用了所有iOS路徑,即使它存在,仍然無法找到KML文件。

下面顯示正是我放在kml文件夾:

enter image description here

下面是如何以編程方式嘗試檢查一個KML文件存在。

$cordovaFile.checkFile(cordova.file.applicationStorageDirectory, $stateParams.kml_file) 
.then(function (success) { 
    // success 
    console.log("kml file found"); 
    console.log(success); 
}, function (error) { 
    // error 
    console.log("kml file NOT found"); 
    console.log(error); 
}); 

除了事實,我知道KML文件中www/kml文件夾中存在,因爲我把它放在那裏,我打開使用geoXML3庫的KML文件,並將其加載到谷歌地圖成功。

當前從檢查分離文件是否存在,這就是爲什麼我需要知道,如果KML文件手前之前,我嘗試用geoXML3解析它並將其加載到地圖中的存在。但我不知道正確path

我用所有建議的iOS路徑從http://ngcordova.com/docs/plugins/file/即:applicationDirectorydocumentsDirectorydataDirectorycacheDirectorytempDirectory。但該文件不能與所有這些文件一起找到。我得到「KML文件未找到」在Xcode的控制檯和錯誤{"code":1,"message":"NOT_FOUND_ERR"}

回答

2

我使用AJAX來檢查文件是否存在:

$.ajax({ 
    type: "HEAD", 
    url: "path/to/your/file.txt", 
    success: function() { 
     // do something 
    }, 
    error: function() { 
     // do something 
    } 
}); 
+1

謝謝你的提示。我決定使用'$ http.head(「./kml /」+ $ stateParams.kml_file).then(function(res){...});'因爲我使用的是AngularJS。我將這個答案標記爲正確的答案,因爲Angular的'$ http'和'$ .ajax()'是一樣的。 – junerockwell

相關問題