要为我要提出的问题提供背景信息,请访问此link。
基本上,我想知道是否只限于在SD卡中以固定和预定义的路径创建文件,或者相反,有某种方法(无论使用哪种插件)在该修复路径之外创建文件。
无法使用cordova-plugin-file
插件在SD卡中创建文件。通过使用cordova.plugins.diagnostic
插件,我发现可以在修订和预定义路径下创建文件。这是用于此目的的代码:
cordova.plugins.diagnostic.getExternalSdCardDetails(onSuccess_getExternalSdCardDetails, onError_getExternalSdCardDetails);
onSuccess_getExternalSdCardDetails : function(entryArray) {
console.log("entryArray.length:" + entryArray.length);
for (i = 0; i < entryArray.length; i++) {
if (entryArray[i].type == "root") {
sdCardPath = entryArray[i].filePath;
break;
}
console.log("sdCardPath:" + sdCardManager.sdCardPath);
}
由于有了这些代码,我设法查看了entryArray
对象中对象的详细信息,该对象设置为调用cordova.plugins.diagnostic.getExternalSdCardDetails()
方法时调用的回调函数。该对象是:
entryArray[0]:
{canWrite:false
filePath:"file:///storage/9634-B08B"
freeSpace:10907648000
path:"/storage/9634-B08B"
type:"root"
}
entryArray[1]:
{canWrite:true
filePath:"file:///storage/9634-B08B/Android/data/es. ... .myappName/files"
freeSpace:10907648000
path:"/storage/9634-B08B/Android/data/es. ... .myAppName/files"
type:"application"
}
我看到我的SD卡路径为file:///storage/9634-B08B
,但这很好,但令我惊讶的是,我只能在file:///storage/9634-B08B/Android/data/es. ... .myappName/files
路径下写入想要的文件,而无法创建文件超出了该路径。
我的问题是我是否只限于在该路径下创建文件,或者相反,还有其他方法(也许使用其他插件)在该路径之外创建文件,但始终在SD卡中创建文件(例如, file:///storage/9634-B08B/myFiles
)。
谢谢。