Closed8
Android で 指定ディレクトリにファイル作成
どうやるかわからん
この方法だと直下にしか作れなさげ
/storage/emulated/0/Android/data/<プロジェクト>/files/<なんか>/example.txt
このあたりにつくりたい
これでいけるか、
private fun setFile() {
val filename = "/path/example.txt"
val fileContents = "text"
context.openFileOutput(filename, Context.MODE_PRIVATE).use {
it.write(fileContents.toByteArray())
}
}
だめだった
E/AndroidRuntime: FATAL EXCEPTION: main
Process: プロジェクト, PID: 1795
java.lang.RuntimeException: Unable to start activity ComponentInfo{プロジェクト/プロジェクト.MainActivity}: java.lang.IllegalArgumentException: File /path/example.txt contains a path separator
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2671)
private fun setFile() {
val path = File(context.getExternalFilesDir(null),"path")
path.mkdirs()
val filename = "example.txt"
val filepath = File(path,filename)
val writer = BufferedWriter(FileWriter(filepath))
val fileContents = "any contents"
try {
writer.write(fileContents)
writer.close()
} catch (e: Exception) {
Log.e("setFile", "setFile: Catched!!")
}
}
通った
これは記事化しても良さそう
参考: https://www.it-swarm-ja.tech/ja/android/androidの独自の内部フォルダーに内部ファイルを保存します/972978013/
- 目的のディレクトリにFileを作成します(例:File path=new File(getFilesDir(),"myfolder");)
- Fileでmkdirs()を呼び出して、ディレクトリが存在しない場合は作成します
- 出力ファイル用にFileを作成します(例:File mypath=new File(path,"myfile.txt");)
- standard Java I/O を使用してFileに書き込みます(たとえば、new BufferedWriter(new FileWriter(mypath)))
ただこれ 2011年の情報なのが…
このスクラップは2021/01/01にクローズされました