【发布时间】:2020-07-02 04:21:44
【问题描述】:
我了解在当前的 SDK 中,我的应用程序的外部存储文件是在 /data/data/"package" 文件夹中创建的。但是,我正在与另一个我无法控制的应用程序集成,它从我的 Android 10 (R) 手机上的“内部存储”(哪个是主要外部存储?AARG!:) 文件夹中读取。我已经搜索了 2 天,如何在标有“内部存储”(我的文件-> 内部存储)的文件夹中创建一个简单的 .csv 文件,但根本找不到获取该位置路径的解决方案。
我将我的 Android Studio 设置为 minSdkVersion 为 16,complileSdkVersion 设置为 28,所以至少我可以使用一些早期的方法进行文件管理。我希望我的应用程序能够在至少 3 年或更新的手机/平板电脑上运行。没有必要的 UI(选择器 - 正如新文档建议使用的那样)来选择一个文件夹来保存文件,只需简单地创建一个我需要的文件。我是一名老 Java 程序员,但对 Android 很陌生。大多数帖子都指向我们在 >28 个 SDK 中丢失的已弃用功能。
【问题讨论】:
-
您谈论的奇怪文件夹仅在您使用不良文件管理器应用程序时才存在。请谈谈 getFilesDir()、getExternalFilesDir() 和 getExternalStorageDirectory()。尝试它们并提及完整路径。重写您的帖子,以便我们知道您想要什么。
-
getFilesDir() = "/data/user/0/com.help.filetest/files"
-
getFilesDir() = "/data/user/0/com.help.filetest/files", getExternalFilesDir() = "/storage/emulated/0/Android/data/com.help.filetest /文件”。此外,此代码抛出 java.lang.IllegalArgumentException: File /storage/emulated/0/Android/data/com.help.filetest/files/SampleFile1.csv contains a path separator : File filesDir = getFilesDir();文件 extFilesDir = getExternalFilesDir(null);尝试 { FileOutputStream outFile = openFileOutput (extFilesDir + filename1, 0); outFile.write(testHeader.getBytes()); }...
标签: android