1

我目前正在玩文件下载。但我目前面临一个奇怪的错误:

05-23 17:39:45.917: E/(5036): java.io.FileNotFoundException: /mnt/sdcard/Pictures/"Samsung  ()+-* Samsung.jpg": open failed: EINVAL (Invalid argument)
05-23 17:39:45.917: E/(5036):   at libcore.io.IoBridge.open(IoBridge.java:406)
05-23 17:39:45.917: E/(5036):   at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
05-23 17:39:45.917: E/(5036):   at java.io.FileOutputStream.<init>(FileOutputStream.java:128)
05-23 17:39:45.917: E/(5036):   at java.io.FileOutputStream.<init>(FileOutputStream.java:117)
05-23 17:39:45.917: E/(5036):   at com.end.utils.InternalFileUtils.copyFile(InternalFileUtils.java:458)
05-23 17:39:45.917: E/(5036):   at com.end.activities.filopeartions.MultipleDownloadActivity$MultipleDownloadAsyncTask.downladFile(MultipleDownloadActivity.java:260)
05-23 17:39:45.917: E/(5036):   at com.end.activities.filopeartions.MultipleDownloadActivity$MultipleDownloadAsyncTask.doInBackground(MultipleDownloadActivity.java:209)
05-23 17:39:45.917: E/(5036):   at com.end.activities.filopeartions.MultipleDownloadActivity$MultipleDownloadAsyncTask.doInBackground(MultipleDownloadActivity.java:174)
05-23 17:39:45.917: E/(5036):   at android.os.AsyncTask$2.call(AsyncTask.java:264)
05-23 17:39:45.917: E/(5036):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-23 17:39:45.917: E/(5036):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-23 17:39:45.917: E/(5036):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-23 17:39:45.917: E/(5036):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-23 17:39:45.917: E/(5036):   at java.lang.Thread.run(Thread.java:856)
05-23 17:39:45.917: E/(5036): Caused by: libcore.io.ErrnoException: open failed: EINVAL (Invalid argument)
05-23 17:39:45.917: E/(5036):   at libcore.io.Posix.open(Native Method)
05-23 17:39:45.917: E/(5036):   at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
05-23 17:39:45.917: E/(5036):   at libcore.io.IoBridge.open(IoBridge.java:390)
05-23 17:39:45.917: E/(5036):   ... 13 more

这是我的代码:

458    FileChannel outChannel = new FileOutputStream(mediaFileName).getChannel();

然后我做其他事情,但我认为新的 FileOutputStream 是它崩溃的地方。一个字符(肯定是 *)是原因,但我不明白为什么以及如何使它工作(因为在带有 adb shell 的 android 上,我可以创建一个具有此名称的文件)。任何想法 ?谢谢

4

0 回答 0