본문 바로가기
Kotlin

[Kotlin을 활용한 안드로이드 프로그래밍] 시스템 폴더/파일목록

by 돌맹96 2023. 5. 22.
728x90
반응형

에뮬레이터 내부 시스템 폴더/파일 목록을 확인하는 예제다.

<xml 코드>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnFilelist"
        android:text="시스템 폴더/파일 목록" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edtFilelist"
        />


</LinearLayout>

 

<코틀린 코드>

package com.example.myapplication

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment
import android.widget.Button
import android.widget.EditText
import androidx.core.app.ActivityCompat
import java.io.File
import java.io.FileInputStream
import java.nio.charset.Charset

class MainActivity : AppCompatActivity() {
    public override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.
        permission.WRITE_EXTERNAL_STORAGE), Context.MODE_PRIVATE)


        var btnFilelist : Button
        var edtFilelist : EditText
        btnFilelist = findViewById<Button>(R.id.btnFilelist)
        edtFilelist = findViewById<EditText>(R.id.edtFilelist)

        btnFilelist.setOnClickListener {
            var sysDir = Environment.getExternalStorageDirectory().absolutePath
            var sysFiles = File(sysDir).listFiles()

            var strFname:String
            for (i in 0 until sysFiles.size){
                if(sysFiles[i].isDirectory == true)
                    strFname = "<폴더> " + sysFiles[i].toString()
                else
                    strFname = "<파일> " + sysFiles[i].toString()

                edtFilelist.setText(edtFilelist.text.toString() + "\n" + strFname)
            }
        }


    }
}

 

시스템/파일 목록

728x90
반응형