在CodenameOne中保存文件

在CodenameOne中保存文件,codenameone,Codenameone,我正试图将一些屏幕转储保存到内部存储以进行调试,但似乎无法访问它们。当我调用FileSystemStorage.getInstance().getAppHomePath()时,我得到的路径如下所示: /Android/data/com.doubletwist.androidplayer/ /data/data/com.mycompany.myapp/files/ 但是我在Android文件传输工具中看不到这个文件夹,所以我不能将文件拖到我的Mac上。我还尝试使用Message类将它们附加到电子

我正试图将一些屏幕转储保存到内部存储以进行调试,但似乎无法访问它们。当我调用FileSystemStorage.getInstance().getAppHomePath()时,我得到的路径如下所示:

/Android/data/com.doubletwist.androidplayer/
/data/data/com.mycompany.myapp/files/

但是我在Android文件传输工具中看不到这个文件夹,所以我不能将文件拖到我的Mac上。我还尝试使用Message类将它们附加到电子邮件,但由于某些原因,这些附件从未出现。我注意到很多应用程序都将数据存储在如下文件夹中:

/Android/data/com.doubletwist.androidplayer/
如果我尝试创建这样的文件夹,我会遇到两个问题。首先,它不是独立于平台的。(这并不重要,因为我只是为了调试才这样做。)其次,它不起作用。我收到一个错误,告诉我需要使用FileSystemStorage.getInstance().getAppHomePath()返回的目录

有没有什么方法可以将文件保存到一个文件夹中,我可以从中检索它们?如果我有一个独立于平台的方法会更有帮助,但现在任何可行的方法都可以。

文件系统是一个非常“不可移植”的概念。默认情况下,app home是一个私有文件夹,包括Android 4+在内的一些移动操作系统将其保持私有且不可访问

Android有一个“SD卡”的概念,它曾经是一个物理存储,你可以在任何目录下写任何东西而不会出现问题。这不再适用于更高版本的Android,但您可以从SD卡目录中读取并检测它


有一个API来获取根及其类型,如果你有SD卡类型,你可以从那里读取。您可以使用查看向应用程序公开的文件层次结构,这对调试非常有用。

感谢您的澄清。听起来我只能写一个别人看不到的目录。尽管如此,其他Android应用程序仍然能够写入/Android/data//路径上的目录。那太好了。事实上,我甚至不能用我的邮件程序附加我创建的文件,因为它看不到它们。我对其他平台不太熟悉,但如果CodenameOne提供了一种方法来创建/返回其他人可以看到的用户目录,那将非常有用。这不是我在“sdcard”一段中所说的。也许我们彼此误解了。“SD卡”一段告诉我,我不能向SD卡写信。我要附加的文件是我创建的文件,因此我只能将它们保存到我的邮件程序看不到的目录中。您不能写入任何目录,但可以从任何目录中读取。您可以写入特定于应用程序的目录。我不记得确切的语义,因为它是特定于Android的。