我正在编写一个应用程序,我希望允许在PC上使用创建的csv文件。 Android具有可在Android上查看的内部存储,可通过PC上的USB访问。我尝试了各种方法来生成文件名:
/data/user/0/com.ed.ilan.ioioterbium/files/documents/2016_9_16_10_28_12.csv
/data/user/0/com.ed.ilan.ioioterbium/files/2016_9_16_10_35_57.csv
2016_9_16_10_46_34.csv
我使用getFilesDir()获得的应用程序的名称,但前两个示例不起作用,因为Java抱怨名称中的斜杠。第三个工作但在(appName)/ files /中没有任何内容可见。我不知道这是出于安全原因设计的,还是文件确实不存在。代码是
String name = getFileName();
try {
FileOutputStream fOut = new FileOutputStream(name);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write("test1");
osw.flush();
osw.close();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
我真的希望文件在内部存储中。我创建了一个名为myData的文件夹,我可以在手机和PC上看到它。问题是:如何指示应用程序写入内部存储。我认识到这不是“安全”,但我只想获取文件。
要写入内部存储,需要在清单中
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
如果我们决定将文件放在云端服务器上,有没有一种标准方法可以做到这一点?
谢谢, 伊兰
答案 0 :(得分:0)
我了解您要将文件写入手机的Documents
文件夹,对不对?如果是这样,以下内容可能对您可以编写.csv文件有帮助。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
答案 1 :(得分:0)
如果你使用的是getFilesDir(),那么它会返回一个特定于android应用程序的路径。用户根本无法访问getFilesDir()返回的路径。
如果您拥有root设备,则可以访问上述路径。
如果您希望只有您的应用程序可以访问您存储的文件,请使用getFilesDir()
,否则您可以使用
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath();