fonts目录都在Windows安装目录,取得Windows目录的绝对路径即可,
可通过取系统变量"windir"的值来取得。

解决方案 »

  1.   

    zmgcj,能说的详细一些吗。。多谢。
      

  2.   

    很简单就可获得:IDictionary environment = Environment.GetEnvironmentVariables();
    string s=environment["windir"].ToString();
      

  3.   

    string fontsDir=System.Environment.GetEnvironmentVariable("windir")+"\\fonts";
      

  4.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/reference/enums/csidl.asp
      

  5.   

    如果用 Win32 API 的话可以直接得到这个目录,以下是 C++ 代码:TCHAR szBuff[MAX_PATH] = _T("");
    ::SHGetSpecialFolderPath(NULL, szBuff, CSIDL_FONTS , FALSE);
      

  6.   

    C# 完整代码,已测试无误:using System;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Security;
    using System.Security.Permissions;namespace ConsoleTest
    {
    class Class1
    {
    [SuppressUnmanagedCodeSecurity]
    internal sealed class Win32Native
    {
    [DllImport("shfolder.dll", CharSet=CharSet.Auto)]
    internal static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder, IntPtr hToken, int dwFlags, StringBuilder lpszPath);
    }

    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    StringBuilder builder1 = new StringBuilder(260);
    Win32Native.SHGetFolderPath(IntPtr.Zero, 20, IntPtr.Zero, 0, builder1);
    string path = builder1.ToString();
    new FileIOPermission(FileIOPermissionAccess.PathDiscovery, path).Demand();

    Console.WriteLine(path);
    }
    }
    }
      

  7.   

    System.IO.Directory.GetCurrentDirectory()