为什么我再用这个的时候,这个函数(不是每次)回去找的文件夹是 [windowsroot]\windows\temp
而不是我们平常正常的[user]\...\temp

解决方案 »

  1.   

    [DllImport("kernel32.dll", CharSet=CharSet.Auto)]
    [return:MarshalAs(UnmanagedType.U4)]
    public static extern int GetTempFileName(
        string strPathName,
        string strPrefixString,
        [MarshalAs(UnmanagedType.U4)] uUnique,
        StringBuilder sbTempFileName);
    试试这个看怎么样
      

  2.   

    path.gettemppath的内部实现就是调用API:GetTempPath。所以估计差别不大。
    API的实现不知道有没有公开...
      

  3.   

    根据MSDN的说明,这个玩意应该是跟环境变量TMP相关啊,不知道为何我更改后没有效果。
      

  4.   

    你环境变量里面的TEMP值是什么呀,我用的是windows 7,里面有用户变量和系统变量两大类,系统变量里面的temp指向的就是c:\windows\temp,而用户变量里面的是用户文件夹下的
      

  5.   

    http://msdn.microsoft.com/zh-cn/library/system.io.path.gettemppath.aspx
      

  6.   

    试着把 TMP 和 TEMP 两个环境变量都设置一下。
      

  7.   

    我的机子重新装了两次还是这个现象,只有在执行binary的时候出现,用code直接调的时候一切正常,输入%temp%,得到的也是正确的user temp,就是执行文件的时候会出现 system temp很奇怪