0

Environment.GetFolderPath(Environment.SpecialFolder を使用してパス + ファイル名から文字列変数を設定します。そのファイルには、Windows サーバー 2003 および xp では正しく機能する拡張子がありませんが、Windows 7 および Windows サーバー 2008 では機能しません。

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

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

3 に答える 3

2

次の 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 プラットフォームには、2 つのフォルダー system32 と systemWOW32 があり、.net には systemWOW64 が system32 として返されます。システムWOW64を返します。

于 2013-03-05T06:41:05.160 に答える
0

プロセスに権限がない場合、File.Existsfalse を返し、例外をスローしません。

ローカル ディレクトリ内のファイルを開くか列挙して、UnauthorizedAccessException.

于 2013-03-05T06:47:15.237 に答える