我正在尝试在内部存储上创建文件和文件夹
在清单中,我有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这些许可。
fun test(view: View) {
try {
val myObj = File("filename.txt")
if (myObj.createNewFile()) {
println("File created: " + myObj.name)
} else {
println("File already exists.")
}
} catch (e: IOException) {
println("An error occurred.")
e.printStackTrace()
}
}
}
我来吧
An error occurred.
java.io.IOException: Read-only file system
我尝试了很多其他的东西,从javatpoint到官方的java和Kotlin教程。但都不管用
3条答案
按热度按时间6mw9ycah1#
好的,我明白了,没有指定正确的路径。
然后要检查此操作,请导航到
Android ->数据-> com.your.pkg_name ->文件->
将看到创建的文件。
注意:-我们可以使用不同的路径
val path = this.externalCacheDir
Android -> data -> com.your.pkg_name -> cache ->
val path = this.externalMediaDirs.first()
Android ->媒体
val path = this.getExternalFilesDirs(null).first()
val path = Environment.getExternalStorageDirectory().getPath()
打印并检查路径。
fcg9iug32#
您正在尝试在根目录中创建文件,这是不允许的。您可以使用
Environment.getExternalStorageDirectory()
在内部存储/SD卡中创建文件。使用下面的代码:注意:Environment.getExternalStorageDirectory()在java API级别29中不推荐使用
请参阅Environment.getExternalStorageDirectory() deprecated in API level 29 java了解更多详情。
bzzcjhmw3#
2023年6月实际
要从Activity写入Internal Storage,请使用以下代码段:
**注意!**使用
applicationContext
,而不是context
但现在强烈建议使用DataStore:https://developer.android.com/topic/libraries/architecture/datastore