gpt4 book ai didi

android - 无法在内部目录中保存文件

转载 作者:行者123 更新时间:2023-12-04 15:12:01 25 4
gpt4 key购买 nike

我试图在 android 的内部存储中创建文件夹,并想在该文件夹中添加文件,但应用程序在下面崩溃是 logcat:

11-29 19:40:02.241 23675-23675/com.app.papers E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.papers, PID: 23675
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: java.io.FileNotFoundException: /storage/emulated/0/Papers: open failed: EISDIR (Is a directory)
at libcore.io.IoBridge.open(IoBridge.java:452)
at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
at com.app.papers.PickImage$b.onClick(SourceFile:81)
at android.view.View.performClick(View.java:5716)
at android.widget.TextView.performClick(TextView.java:10926)
at android.view.View$PerformClick.run(View.java:22596)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: android.system.ErrnoException: open failed: EISDIR (Is a directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:438)

下面是我的代码:

   val document: PdfDocument = PdfDocument()
val pageInfo: PdfDocument.PageInfo? = bitmap?.width?.let { it1 ->
bitmap?.height?.let { it2 ->
PdfDocument.PageInfo.Builder(
it1,
it2, 1).create()
}
}
val page: PdfDocument.Page = document.startPage(pageInfo)

val canvas: Canvas = page.canvas
bitmap?.let { it1 -> canvas.drawBitmap(it1, 0f, 0f, null) }
document.finishPage(page)

val mediaStorageDir = File(Environment.getExternalStorageDirectory(), "Papers")

if (mediaStorageDir.exists()) {
document.writeTo( FileOutputStream(mediaStorageDir))
document.close()
}

我做错了什么?

最佳答案

I a trying to create folder in internal storage in android

FWIW,您的代码是为 external storage 设置的.

Someone please let me know what I am doing wrong any help would be appreciated.

Papers/ 似乎存在并且是一个目录。 writeTo() 接受一个文件,而不是一个目录。尝试类似的东西:

        val mediaStorageDir = File(Environment.getExternalStorageDirectory(), "Papers")

if (mediaStorageDir.exists()) {
val pdfFile = File(mediaStorageDir, "something.pdf")

document.writeTo( FileOutputStream(pdfFile))
document.close()
}

关于android - 无法在内部目录中保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65061071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com