GVKun编程网logo

文件确实存在时引发FileNotFoundException(文件是否存在)

22

本文将带您了解关于文件确实存在时引发FileNotFoundException的新内容,同时我们还将为您解释文件是否存在的相关知识,另外,我们还将为您提供关于.net–IO.FileNotFoundE

本文将带您了解关于文件确实存在时引发FileNotFoundException的新内容,同时我们还将为您解释文件是否存在的相关知识,另外,我们还将为您提供关于.net – IO.FileNotFoundException但文件应该存在、android – FileNotFoundException将文件写入SD卡、BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException、File.Exists 文件不存在 Or FileNotFoundException的实用信息。

本文目录一览:

文件确实存在时引发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但文件应该存在

.net – IO.FileNotFoundException但文件应该存在

虽然我确信该文件存在,但我得到了令人惊讶的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()
尝试在FileInfo.Exists或FileInfo.Length之前调用 FileInfo.Refresh – 这些属性可能会被缓存,因此Refresh将获取最新值.

android – FileNotFoundException将文件写入SD卡

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

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

File.Exists 文件不存在 Or FileNotFoundException

 

标题警告,本文仅限走投无路,最终可能的一个问题导致。

最开始出现在找不到文件,测试发现:

 看起来毫无毛病

 

而后各种测试:

 注意看,第一行跟第三行一模一样

 

发现【@"‪‪‪】这两个字符有毒,如果这样替换第一行就会返回true:

 

 

调试看也毫无毛病:

 

然后就想到可能粘贴了看不到的字符:Unicode编码转换

多了&#8234;&#8234;&#8234;

 

果然,多了“&#8234;&#8234;&#8234;”,不过也不记得哪里粘贴来的了。我们查一下8234是什么: 

左往右嵌入?啥..

幽灵事件就这样解决了,”&#8234;“虽然看不到,但也导致不能正确识别目录,这种问题不大可能会遇到,类似字符串都可能剪贴板粘贴到,记录下。

 

 

今天的关于文件确实存在时引发FileNotFoundException文件是否存在的分享已经结束,谢谢您的关注,如果想了解更多关于.net – IO.FileNotFoundException但文件应该存在、android – FileNotFoundException将文件写入SD卡、BitmapFactory:即使文件确实存在,也无法解码流:java.io.FileNotFoundException、File.Exists 文件不存在 Or FileNotFoundException的相关知识,请在本站进行查询。

本文标签: