我正在尝试在我的清单中的内部存储上创建文件和文件夹
<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
我尝试了很多其他东西,从JavaPoint到官方的Java和kotlin教程。 但没有一个奏效
您试图在根目录中创建文件,这是不允许的。 您可以使用environment.getExternalStorageDirectory()
在内部存储/SD卡中创建文件。 使用以下代码:
val myObj = File(Environment.getExternalStorageDirectory()+"/"+"filename.txt")
注意:Environment.getExternalStorageDirectory()在API级别29 Java中不推荐使用
请参阅API级别29 Java中已弃用的Environment.getExternalStorageDirectory()以了解更多详细信息。
我认为您没有指定正确的路径。
请尝试此操作
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->; 缓存->;
val path=this.externalmediadirs.first()
Android->; 媒体