文件存在特殊文件夹不能在Windows 7上工作

时间:2013-03-03 08:16:35

标签: c# windows-7 windows-server-2008 filepath windows-applications

我使用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;}

3 个答案:

答案 0 :(得分: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();
        }
    }
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

尝试打开或枚举本地目录中的文件,看看是否有UnauthorizedAccessException