File.Exists判断文件是不是存在总是返回False?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File.Exists判断文件是不是存在总是返回False?相关的知识,希望对你有一定的参考价值。

我用VS2005做程序,其中有用到File.Exists函数判断文件是否存在,但明明文件存在的,却总是返回False
有人说权限不够,不能访问。但我不知道怎么设置相关权限,请高手指教!

string sysContent = @"C:\\windows\\system32\\spoolsv.exe";
try

if (!File.Exists(sysContent)) //这里面要具体到文件名

File.Copy(sysContent,"C:\\\\");


catch (Exception e)

MessageBox.Show(e.Message);
参考技术A 我想你会不会是判断的客户端的文件?
该指令只能用来判断服务器端的文件。
如果不是这个问题,那就参考楼上的吧。

检查文件是不是存在? file.exists() 总是返回 false

【中文标题】检查文件是不是存在? file.exists() 总是返回 false【英文标题】:Check if file exists or not? file.exists() return always false检查文件是否存在? file.exists() 总是返回 false 【发布时间】:2015-10-20 11:19:42 【问题描述】:

我在检查文件是否存在时遇到问题,这是我的简单代码:

File myfile = new File ("SecretFile");

            if(myfile.exists()

                TextView mytxt = (TextView)findViewById(R.id.textView);
                mytxt.setText("Loaded successfully");

            
            else
                try 
                    myfile.createNewFile();
                 catch (IOException e) 
                    e.printStackTrace();
                

                TextView mytxt = (TextView)findViewById(R.id.textView);
                mytxt.setText("Not loaded,reboot the application");
            

我正在做一个简单的游戏,我需要检查第一个应用程序运行,因为当应用程序运行时,它会从文件中加载所有变量,但在第一次运行时没有文件,因此应用程序崩溃。 我还有另一个问题文件“SecretFile”在哪里? 如何在 Android/data/com.mypackage.myapp/SecretFile 中创建文件?

【问题讨论】:

添加此权限android.permission.WRITE_EXTERNAL_STORAGE 【参考方案1】:

在 android 中创建文件时,您需要添加创建文件的路径。如果您无法满足其要求,则不会创建文件。

这就是为什么你的返回数据总是假的原因。

This link可以帮到你。

【讨论】:

【参考方案2】:
File myfile = new File ("SecretFile");

该声明在 Android 上没有任何意义。

我还有一个问题,文件“SecretFile”在哪里?

无处可去。欢迎您将SecretFile 存储在internal storage 或external storage 上,但您必须通过创建指向这些位置的File 对象(例如File myfile = new File(getFilesDir(), "SecretFile");)来做到这一点。

如何在 Android/data/com.mypackage.myapp/SecretFile 中创建文件?

你不能。最接近的匹配是use getExternalFilesDir(null),我在上面的代码sn-p中有getFilesDir(),这会将您的文件放在外部存储上的Android/data/com.mypackage.myapp/files/SecretFile。此外,正如 Der Golem 所说,您需要 API 级别 4 到 18 的 WRITE_EXTERNAL_STORAGE 权限。

【讨论】:

your file in Android/data/com.mypackage.myapp/files/SecretFile。那是一条不存在的路径。它应该在前面加上/storage/0/ 或类似的东西。 @greenapps:我假设 OP 正在通过 USB 连接查看外部存储,并且指的是从那里看到的路径,我试图在我的散文为 OP 简化事情。 getExternalFilesDir(null) 将根据代码处理设置正确的位置。如果您正在使用其他东西(例如,DDMS 文件资源管理器,adb shell)检查外部存储,那么是的,OP 和我引用的路径将位于外部存储的根目录下该设备或模拟器。 感谢@CommonsWare 你帮了我很多!我是java新手,所以我不知道,也感谢其他用户! @ToastMan:“我是 Java 新手”——需要明确的是,Java 代码在 Android 上的执行方式与 Java 代码在 PC 上的执行方式有点不同。例如,File myfile = new File ("SecretFile"); 在典型的 Windows Java 程序中完全有效。此处的区别在于 Android 的工作方式略有不同,因此您必须始终从某个已识别的根位置(例如,getFilesDir()getExternalFilesDir(null))创建 File 对象。

以上是关于File.Exists判断文件是不是存在总是返回False?的主要内容,如果未能解决你的问题,请参考以下文章

C#如何用exists判断指定路径的文件是不是存在。求完整代码?

R 如何判断文件夹是不是存在?

C# File.Exists判断系统文件 警惕32位和64位的差异

File.Exists() 在 IIS 上总是返回 false

java判断文件是不是存在?

java 根据文件名判断文件是不是存在