gpt4 book ai didi

java - ENOENT (No such file or directory) 当那里有文件时

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:12 25 4
gpt4 key购买 nike

我正在尝试在 Android 中与 ShareActionProvider 共享 PNG。当我打开 Uri 的 PNG 时,它说找不到文件。open failed: ENOENT (No such file or directory) 即使我已经进入文件系统并亲自看到了它。我已经在我的手机和 AVD 上尝试过,但出现保存错误。我环顾四周,但没有找到答案。任何帮助将不胜感激。

这是我尝试打开文件的地方:

 File file = new File(getFilesDir()+"wifiqr/", "QRCode.png");
file.setReadable(true, false);
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM,uri);
provider.setShareIntent(intent);

如果有帮助,我就把它保存在这里:

 String fileName = getFilesDir()+"/wifiqr/" + "QRCode.png";
etSSID.setText(fileName);
OutputStream stream = null;
try {
stream = new FileOutputStream(fileName);
bmp.compress(Bitmap.CompressFormat.PNG, 80, stream);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最后是错误日志:

11-15 02:34:43.243      594-892/com.android.mms E/Mms/media: IOException caught while opening or reading stream
java.io.FileNotFoundException: /data/data/com.frostbytedev.wifiqr/fileswifiqr/QRCode.png: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:416)
at java.io.FileInputStream.<init>(FileInputStream.java:78)
at java.io.FileInputStream.<init>(FileInputStream.java:105)
at android.content.ContentResolver.openInputStream(ContentResolver.java:447)
at com.android.mms.model.MediaModel.initMediaSize(MediaModel.java:235)
at com.android.mms.model.MediaModel.<init>(MediaModel.java:74)
at com.android.mms.model.RegionMediaModel.<init>(RegionMediaModel.java:36)
at com.android.mms.model.RegionMediaModel.<init>(RegionMediaModel.java:31)
at com.android.mms.model.ImageModel.<init>(ImageModel.java:73)
at com.android.mms.ui.SlideshowEditor.changeImage(SlideshowEditor.java:163)
at com.android.mms.data.WorkingMessage.internalChangeMedia(WorkingMessage.java:640)
at com.android.mms.data.WorkingMessage.changeMedia(WorkingMessage.java:588)
at com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:453)
at com.android.mms.ui.ComposeMessageActivity.addImage(ComposeMessageActivity.java:3150)
at com.android.mms.ui.ComposeMessageActivity.addAttachment(ComposeMessageActivity.java:3291)
at com.android.mms.ui.ComposeMessageActivity.access$5900(ComposeMessageActivity.java:167)
at com.android.mms.ui.ComposeMessageActivity$35.run(ComposeMessageActivity.java:3236)
at com.android.mms.ui.AsyncDialog$ModalDialogAsyncTask.doInBackground(AsyncDialog.java:129)
at com.android.mms.ui.AsyncDialog$ModalDialogAsyncTask.doInBackground(AsyncDialog.java:84)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at libcore.io.IoBridge.open(IoBridge.java:400)
... 24 more

最佳答案

openFileOutput 中所述,getFilesDir() 是该特定应用程序专用的(即,其他应用程序无法读取它) (与 getFilesDir 根据 its documentation 返回的目录相同)。

如果您尝试跨应用程序共享文件,请遵循 Sharing Files training guide以确保其他应用程序可以访问您的文件。

关于java - ENOENT (No such file or directory) 当那里有文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992706/

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