【问题标题】:how to create a folder and file in internal storage using kotlin如何使用 kotlin 在内部存储中创建文件夹和文件
【发布时间】:2020-10-04 00:04:30
【问题描述】:

我正在尝试在我的内部存储上创建文件和文件夹
在清单中我有

<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 教程。 但没有一个工作

【问题讨论】:

    标签: java android flutter kotlin nativescript


    【解决方案1】:

    好的,没有指定正确的路径。

            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 -> 媒体

    val path = this.getExternalFilesDirs(null).first()
    val path = Environment.getExternalStorageDirectory().getPath()

    打印并检查路径是什么。

    【讨论】:

      【解决方案2】:

      您试图在不允许的根目录中创建文件。您可以使用Environment.getExternalStorageDirectory() 在内部存储/SD 卡中创建文件。使用以下代码:

      val myObj = File(Environment.getExternalStorageDirectory()+"/"+"filename.txt")
      

      注意:Environment.getExternalStorageDirectory() 在 API 级别 29 java 中已弃用

      详情请咨询Environment.getExternalStorageDirectory() deprecated in API level 29 java

      【讨论】:

      • 对不起,即使它有效,我也不会使用它。因为它已被弃用
      • 你解决过这个问题吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      相关资源
      最近更新 更多