我正在编写一个应用程序,我希望允许在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)/file/中什么都看不见。我不知道这是出于安全考虑而设计的,还是文件真的不存在。代码是
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"/>如果我们决定将文件放到云服务器上,那么有标准的方法吗?
谢谢你,伊兰
发布于 2016-10-16 11:42:55
如果您使用的是getFilesDir(),那么它返回一个特定于android应用程序的路径。用户根本无法访问getFilesDir()返回的路径。
如果您有一个有根的设备,那么您可以访问上面的路径。
如果您希望只有应用程序可以访问由您存储的文件,然后使用getFilesDir(),则可以使用
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath();发布于 2016-10-16 11:34:17
我知道你想把一个文件写到你手机的Documents文件夹里,对吗?如果是这样的话,下面的内容可能会有所帮助,您可以在其中编写.csv文件。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);https://stackoverflow.com/questions/40069737
复制相似问题