我正在尝试在内部存储器上创建文件和文件夹在清单中我有
<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教程。但无济于事
您正在尝试在根目录中创建不允许的文件。您可以使用Environment.getExternalStorageDirectory()
在内部存储/ SD卡中创建文件。使用以下代码:
val myObj = File(Environment.getExternalStorageDirectory()+"/"+"filename.txt")
注意:Environment.getExternalStorageDirectory()在API级别29 java中已弃用
更多详细信息,请参阅Environment.getExternalStorageDirectory() deprecated in API level 29 java。
我认为您未指定正确的路径。试试这个
val data: String = "om namah shivaya"
val path = this.getExternalFilesDir(null)
val folder = File(path, "avalakki")
folder.mkdirs()
println(folder.exists()) // u'll get true
val file = File(folder, "file_name.txt")
file.appendText("$data")
然后检查此,转到
Android->数据-> com.your.pkg_name->文件->
您将看到已创建文件。
注:-您可以使用不同的路径
val path = this.externalCacheDir
Android->数据-> com.your.pkg_name->缓存->