使用Revit 2020时,Path.GetTempPath()方法最终以GUID返回UserTempPath

Uma*_*mar 5 .net c# revit .net-4.7.2

使用我的加载项的大多数应用程序都返回“ C:\ Users \ [用户名] \ AppData \ Local \ Temp \”路径。但是一个应用程序返回“ C:\ Users \ [用户名] \ AppData \ Local \ Temp \ 1affa5dd-2f26-4c96-9965-7a78f5c76321 \”。最终,每次启动应用程序时,GUID都会更改。

我正在从中运行加载项的应用程序是Revit 2015-2020。Revit 2015-2019版本返回正确的路径。但是Revit 2020将返回最后添加GUID的路径。代码保持不变。

    public static string GetLocalFilePath(string sourceUri, string fileName, string extension)
    {
        string[] sasTokenSeparated = sourceUri.Split('?');
        string[] uriParts = sasTokenSeparated[0].Split('/');
        string documentId = uriParts[uriParts.Length - 2];
        documentId = documentId.Split('.')[0];
        string extensionWithDot = string.Empty;
        if (!extension.StartsWith("."))
        {
            extensionWithDot = "." + extension;
        }
        else
        {
            extensionWithDot = extension;
        }
        string localPath = Path.Combine(Path.GetTempPath(), documentId, fileName + fileExtension);
        return localPath;
    }
Run Code Online (Sandbox Code Playgroud)

我期望路径为“ C:\ Users \ [用户名] \ AppData \ Local \ Temp \”

当我实际获得路径时,“ C:\ Users \ [用户名] \ AppData \ Local \ Temp \ 1affa5dd-2f26-4c96-9965-7a78f5c76321 \”

mjw*_*lls 5

按照此论坛链接Revit 2020根据您所看到的更改返回的值。

从Revit 2020开始,请求的临时路径在该路径的末尾包含一个额外的GUID,该GUID在每次Revit重新启动后都会更改(即C:\ Users \ USERNAME \ AppData \ Local \ Temp \ 84ae8c0d-197b-4b44-b8d3-8823fabbba4f )。看来Revit更改了应用程序范围的临时路径。