本文将带您了解关于文件确实存在时引发FileNotFoundException的新内容,同时我们还将为您解释文件是否存在的相关知识,另外,我们还将为您提供关于.net–IO.FileNotFoundE
本文将带您了解关于文件确实存在时引发FileNotFoundException的新内容,同时我们还将为您解释文件是否存在的相关知识,另外,我们还将为您提供关于.net – IO.FileNotFoundException但文件应该存在、android – FileNotFoundException将文件写入SD卡、BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException、File.Exists 文件不存在 Or FileNotFoundException的实用信息。
本文目录一览:- 文件确实存在时引发FileNotFoundException(文件是否存在)
- .net – IO.FileNotFoundException但文件应该存在
- android – FileNotFoundException将文件写入SD卡
- BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException
- File.Exists 文件不存在 Or FileNotFoundException
文件确实存在时引发FileNotFoundException(文件是否存在)
我正面临着这个奇怪的问题。
我正在尝试读取位于另一台计算机上的文件作为共享资源:
\\remote-machine\dir\MyFileHere.txt
当我运行一个独立的应用程序(一个16行的Java文件)时,一切都很好。但是,当我尝试使用服务器“引擎”(这是一个应用程序引擎,非常类似于可以运行Java程序的Java
EE Application Server)使用相同的类和相同的方法读取相同的文件时,“ FileNotFoundException”被抛出。
我虽然有某种权限,但是我将资源映射为驱动器:K:\
重新运行我的Java文件,读取,一切正常。
在“引擎”-> FileNotFoundException中重新运行我的Java文件。
当我将文件复制到本地计算机(C:\ MyFileHere.txt)时,不会引发异常。
题
是什么导致此FileNotFoundExcecption?
我正在使用Java 1.5
据我所知,引擎几乎是透明地使用Java。
有人遇到过类似的事情吗?
还有问题吗?什么是解决此问题的好方法?我开始考虑要提供这些文件并通过http读取它们的tomcat安装,但是我认为这太多了,这就是为什么SMB协议首先要使用的原因,不是吗?而且可能我还是无法打开套接字。
安全管理器是否可能是原因(我以前从未使用过,但是我知道它存在)
如果是这种情况,是否会抛出SecurityException而不是?
非常感谢。
编辑
解决了。谢谢史蒂夫·W。
事实证明,此引擎是通过ZeroG的“ LaunchAnywhere”启动的。因此,将创建一个.exe,该.exe将依次使用指定的应用程序运行JVM。
该应用程序本身就是启动器。当它启动引擎时,拥有JVM进程的用户以某种方式(我无法弄清楚为什么或如何)是SYSTEM。正如Steve指出的那样,该用户没有NETWORK访问权限,因此无法从共享资源或映射的驱动器中读取。
解决方法(当我向制造商报告时)是创建一个.cmd文件来手动清理引擎。由于可以手动启动,因此用户确实可以访问网络。
我使用了SysInternals的“ Process Explorer”来确切地了解用于运行引擎应用程序的命令行。
真是一团糟!
感谢那些发布答案的人。
答案1
小编典典共享资源是否受用户名和密码保护?如果是这样,您的应用程序引擎是否以该用户身份运行?如果您的应用程序引擎作为Windows服务运行,则Windows服务不能作为“本地系统帐户”运行。此帐户无法访问网络。您必须将服务配置为以有权访问共享驱动器的用户身份运行。
.net – IO.FileNotFoundException但文件应该存在
我只是想添加Logfiles(IO.FileInfo)作为电子邮件的附件,因此我试图检查每个文件的长度,以检测它们是否必须添加/压缩.
如果这些文件已存在,这可以正常工作.
但是,如果我在这次运行中创建它们,当我尝试检查长度时,我会遇到异常.奇怪的是,我可以写入这些“不存在的”文件(实际上FileInfo.Exists返回false),之前没有问题.
这是一些代码……
在名为Log的类的构造函数中创建其中一个文件:
Me.LogFile = New IO.FileInfo(infoLogPath) If Not LogFile.Exists() Then 'tried to use `Using` on the Stream but that doesn't change anything' Using stream = Me.LogFile.Create() 'close and dispose implicitely End Using End If
我可以毫无问题地写入文件:
Me.Log.WriteInfo("BlahBlahBlah...",False)
我在LogFile.Length上获得异常后的一行:
If Me.Log.LogFile.Length <> 0 Then files.Add(Me.Log.LogFile) End If
Me.Log是一个名为Log的自定义日志记录类对象,它保存对FileInfo对象的引用.
这是类Log中的WriteInfo,LogFile是IO.FileInfo-onject:
Public Sub WriteInfo(ByVal message As String,ByVal finishLog As Boolean) Try Using w As IO.StreamWriter = Me.LogFile.AppendText If Me.WithTimestamp Then w.WriteLine(Date.Now.ToString(Globalization.CultureInfo.InvariantCulture) & ": " & message) Else w.WriteLine(message) End If If finishLog Then w.WriteLine("__________________________") w.Flush() w.Close() End Using Catch writeLogException As Exception Try WriteError(writeLogException,True) Catch innerEx As Exception 'ignore End Try End Try End Sub
实际上@ShellShocks solution与Refresh很简单.从来没有听说过这个函数,奇怪的是,当我不刷新文件时,我得到了一个FileNotFoundException.
Me.Log.LogFile.Refresh()
android – FileNotFoundException将文件写入SD卡
我正在尝试从网上下载文件并将其写入SD卡.我启用了WRITE_EXTERNAL_STORAGE权限.代码在这里失败:
OutputStream output = new FileOutputStream(filePath);
09-15 19:40:31.630: WARN/System.err(7933): java.io.FileNotFoundException: /sdcard/artoo/Customerv08.apk
09-15 19:40:31.630: WARN/System.err(7933): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:231)
09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:96)
09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:147)
09-15 19:40:31.640: WARN/System.err(7933): at com.artoo.settings.InstallerActivity$ProgressDialogAsyncTask.doInBackground(InstallerActivity.java:148)
09-15 19:40:31.640: WARN/System.err(7933): at com.artoo.settings.InstallerActivity$ProgressDialogAsyncTask.doInBackground(InstallerActivity.java:1)
09-15 19:40:31.640: WARN/System.err(7933): at android.os.AsyncTask$2.call(AsyncTask.java:185)
09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256)
09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.FutureTask.run(FutureTask.java:122)
09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648)
09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673)
09-15 19:40:31.651: WARN/System.err(7933): at java.lang.Thread.run(Thread.java:1060)
09-15 19:40:31.670: WARN/InputManagerService(53): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43868480
我正在尝试编写该文件,它从以前不存在.关于如何做到这一点的任何想法?
解决方法:
您收到该错误,因为指定的文件无法打开或不存在.这很简单.
我总是先创建一个文件并使用bufferedstream写入它,例如:
File file = new File(path, name);
file.createNewFile();
bufferedoutputstream out = new bufferedoutputstream(new FileOutputStream(file), BUFFER);
BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException
我正在创建一个简单的应用程序拍照。这是我的代码
Button b1;ImageView iv;String TAG = "MAIN ACTIVITY";File photo;private Uri mImageUri;private File createTemporaryFile(String part, String ext) throws Exception { File externalStorageDirectory = Environment.getExternalStorageDirectory(); File tempDir = new File(externalStorageDirectory + "/cameratest/"); if (!tempDir.exists()) { tempDir.mkdir(); } return File.createTempFile(part, ext, tempDir);}@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.button); iv = (ImageView) findViewById(R.id.imageView); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); try { // place where to store camera taken picture photo = createTemporaryFile("picture", ".jpg"); photo.delete(); } catch (Exception e) { Log.v(TAG, "Can''t create file to take picture!"); Toast.makeText(getApplicationContext(), "Please check SD card! Image shot is impossible!", Toast.LENGTH_SHORT).show(); } mImageUri = Uri.fromFile(photo); intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); startActivityForResult(intent, 0); } });}protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0 && resultCode == RESULT_OK) { Log.d(TAG, mImageUri.toString()); Bitmap bitmap = BitmapFactory.decodeFile(mImageUri.toString()); iv.setImageBitmap(bitmap); }}
如您所见,我已经eLog.d(TAG,mImageUri.toString());
在末尾和logcat中(以及FileNotFoundException
)中添加了此错误代码:
03-27 00:43:30.498 30526-30526/myapplication.example.falcoleo.cameratest1 D/MAIN ACTIVITY: file:///storage/emulated/0/cameratest/picture459838058.jpg03-27 00:43:30.499 30526-30526/myapplication.example.falcoleo.cameratest1 E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: file:/storage/emulated/0/cameratest/picture459838058.jpg: open failed: ENOENT (No such file or directory)
猜猜该目录是否存在? spoler警报
,确实如此。而且它不像是在之后创建图片BitmapFactory.decodeFile
。我真的不明白我在做什么错。一切正常,除非实际上必须显示照片,然后才不显示照片。只是空白。就像WTF
M8一样,我只是想尽我所能,而不必发疯。
答案1
小编典典替换mImageUri.toString()
为mImageUri.getPath()
。
decodeFile
需要一个路径,而不是uri字符串。
File.Exists 文件不存在 Or FileNotFoundException
标题警告,本文仅限走投无路,最终可能的一个问题导致。
最开始出现在找不到文件,测试发现:
看起来毫无毛病
而后各种测试:
注意看,第一行跟第三行一模一样
发现【@"】这两个字符有毒,如果这样替换第一行就会返回true:
调试看也毫无毛病:
然后就想到可能粘贴了看不到的字符:Unicode编码转换
多了‪‪‪
果然,多了“‪‪‪”,不过也不记得哪里粘贴来的了。我们查一下8234是什么:
左往右嵌入?啥..
幽灵事件就这样解决了,”‪“虽然看不到,但也导致不能正确识别目录,这种问题不大可能会遇到,类似字符串都可能剪贴板粘贴到,记录下。
今天的关于文件确实存在时引发FileNotFoundException和文件是否存在的分享已经结束,谢谢您的关注,如果想了解更多关于.net – IO.FileNotFoundException但文件应该存在、android – FileNotFoundException将文件写入SD卡、BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException、File.Exists 文件不存在 Or FileNotFoundException的相关知识,请在本站进行查询。
本文标签: