大多数使用我的加载项的应用程序返回“ 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;
}
我期待这条路, “ C:\ Users \ [用户名] \ AppData \ Local \ Temp \”
虽然我实际上正在前进, “ C:\ Users \ [用户名] \ AppData \ Local \ Temp \ 1affa5dd-2f26-4c96-9965-7a78f5c76321 \“
答案 0 :(得分:5)
根据this forum link,Revit 2020
会根据您看到的内容更改返回的值。
从Revit 2020开始,所请求的临时路径包含附加的guid 在路径的末尾,每次Revit重新启动后都会更改(即 C:\ Users \ USERNAME \ AppData \ Local \ Temp \ 84ae8c0d-197b-4b44-b8d3-8823fabbba4f)。 看来Revit更改了范围的临时路径 应用。
答案 1 :(得分:1)
我做了一个小修正,将路径用'\'分隔,并组成了一个字符串,直到单词'Temp'为止,虽然可行,但考虑了一个概念。
private void concept()
{
string fullpath = Path.GetTempPath();
string[] ph = fullpath.Split('\\');
bool fix = false;
string fixedpath = "";
foreach (string word in ph)
{
if (fix == false)
{
fixedpath = fixedpath + word + @"\";
}
if (word.ToLower().Equals("temp"))
{
fix = true;
}
}
MessageBox.Show(fixedpath);
}
答案 2 :(得分:0)
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+ @“ \ AppData \ Local \ Temp \”