我试图使用phonegap将.txt文件保存在android mobile的根目录中。 我已经安装了这些插件'cordova-plugin-file'和'cordova-plugin-file-transfer'。在config.xml文件中,我添加了此首选项。
<preference name="AndroidPersistentFileLocation" value="Internal" />
这是我的代码。
<button class="btn-lg btn-success" onclick="saveFile('hello_world.txt', 'This is Dummy Content')">Write File</button>
处理点击事件的代码。
function saveFile(fileName, fileData) {
// Get access to the file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
// Create the file.
fileSystem.root.getFile(fileName, {create: true, exclusive: false}, function (entry) {
// After you save the file, you can access it with this URL
var myFileUrl = entry.toURL()
entry.createWriter(function (writer) {
writer.onwriteend = function (evt) {
alert("Successfully saved file to " + myFileUrl)
}
// Write to the file
writer.write(fileData)
}, function (error) {
alert("Error: Could not create file writer, " + error.code)
})
}, function (error) {
alert("Error: Could not create file, " + error.code)
})
}, function (evt) {
alert("Error: Could not access file system, " + evt.target.error.code)
})
}
成功回调后,它会返回此文件位置。
file:///data/data/com.adobe.phonegap.app/files/files/hello_world.txt
但是当我尝试在给定位置找到此文件时。它不在那里。我希望这个文件在我的移动根目录中。
答案 0 :(得分:2)
如果没有root权限或使用root权限,则无法写入设备的根目录。也许你想写信给SD卡。在这种情况下,写入/ sdcard /应该可以在设置正确的权限时使用。
如果您想访问本地应用数据,可以在此处运行此命令:
adb shell run-as com.adobe.phonegap.app ls -laR
但通常你无法查看/ data / data
中的目录答案 1 :(得分:2)
查看包含工作样本的link。
该链接包含用于文件下载,保存和打开的示例cordova应用程序。也支持文件夹删除选项。
查看自述文件部分。希望能帮助到你。 另外,您可以查看此SO Post以获取更多相关信息。
答案 2 :(得分:0)
我通常使用两个选项中的一个来保存文件,将其保存在我的应用程序的内部存储器的主目录或主目录中。
选项1:
ContextWrapper wrapper = new ContextWrapper(this);
String directory = wrapper.getDir("MyTempFolder", ContextWrapper.MODE_PRIVATE).toString();
/*directory will be of /data/data/com.your_domain_name.your_project_name/app_MyTempFolder*/
option2:或者您可以使用您的应用程序的目录,其中移动用户无法在下面看到此文件是此代码
File myFile = new File(directory, "MyFile.txt");
if(!myFile.exists())
myFile.createNewFile();
并在代码
下保存文件FileWriter writer = new FileWriter(myFile);
writer.write("this is my first line in the file");
writer.close();
如果你想在那个文件中写一些数据
-define(macro1(X,Y),{if X == Y -> "True"; true ->"False" end}).
答案 3 :(得分:-2)
<activity android:name=".SendMessage.SendMessageLeads"
android:label="SMS Composer"
android:icon="@drawable/sms_composer">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>