0

我使用 Environment.GetFolderPath(Environment.SpecialFolder 从路径 + 文件名设置字符串变量,该文件没有任何扩展名在 windows server 2003 和 xp 上正常工作,但在 windows 7 和 windows server 2008 上不工作

var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "testxyz");

if (File.Exists(path))            
{return true;}
else
{return false;}
4

3 回答 3

2

请检查两件事:

  • 应用程序是否有权访问系统目录?
  • 这个文件夹中的文件真的存在吗?

工作示例(win7 32 位):

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace testPath
{
    class Program
    {
        static void Main(string[] args)
        {
            var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "main.cpl");
            Console.WriteLine(File.Exists(path));
            Console.ReadLine();
        }
    }
}
于 2013-03-03T08:28:47.530 回答
0

Windows 7 或 2008 服务器 x64 平台在 .net 中有两个文件夹 system32 和 systemWOW32 特殊文件夹类返回 systemWOW64 作为 system32 ,当我们使用 specialfolder.system 时。返回系统WOW64。

于 2013-03-05T06:41:05.160 回答
0

如果你的进程没有权限,File.Exists将返回 false 并且不抛出异常。

尝试打开或枚举本地目录中的文件以查看是否获得UnauthorizedAccessException.

于 2013-03-05T06:47:15.237 回答