C# 访问路径:GetTempPath();失败
我想,我的系统面临一个关于环境变量TMP的特殊问题 此变量的定义如下:C# 访问路径:GetTempPath();失败,c#,.net,filesystems,C#,.net,Filesystems,我想,我的系统面临一个关于环境变量TMP的特殊问题 此变量的定义如下: TMP=c:\profiles\myUser\LOKALE~1\temp 无法通过.net应用程序写入此位置,而通过windows资源管理器,我可以轻松创建文件 有没有办法解决这个问题 问候,, MacX实际上根据MSDN: 引用路径。GetTempPath 此方法按以下顺序检查环境变量是否存在,并使用找到的第一条路径: TMP指定的路径 环境变量 临时文件指定的路径 环境变量 用户配置文件指定的路径 环境变量 Wind
TMP=c:\profiles\myUser\LOKALE~1\temp
无法通过.net应用程序写入此位置,而通过windows资源管理器,我可以轻松创建文件
有没有办法解决这个问题
问候,,
MacX实际上根据MSDN: 引用路径。GetTempPath
此方法按以下顺序检查环境变量是否存在,并使用找到的第一条路径:
- TMP指定的路径 环境变量
- 临时文件指定的路径 环境变量
- 用户配置文件指定的路径 环境变量
- Windows目录
它没有指定是否检查正在运行的进程是否具有写访问权限,因此根据进程权限,它可能无法写入。实际上,根据MSDN: 引用路径。GetTempPath
此方法按以下顺序检查环境变量是否存在,并使用找到的第一条路径:
- TMP指定的路径 环境变量
- 临时文件指定的路径 环境变量
- 用户配置文件指定的路径 环境变量
- Windows目录
它不指定是否检查正在运行的进程是否具有写入权限,因此根据进程权限,它可能无法写入。问题不在于变量本身,而在于我访问文件以打开它的方式。 我尝试通过一个控制台参数打开文件,如果路径不是quotet,则空格a被视为分隔符
excel.exe c:\path tofile\excelfile.xls
应该被引用,看起来像这样
excel.exe "c:\path tofile\excelfile.xls"
就这样
因为不是我自己写的,所以我必须在源代码中查找这一部分。但是非常感谢你的提示
MacX问题不在于变量本身,而在于我访问文件以打开它的方式。 我尝试通过一个控制台参数打开文件,如果路径不是quotet,则空格a被视为分隔符
excel.exe c:\path tofile\excelfile.xls
应该被引用,看起来像这样
excel.exe "c:\path tofile\excelfile.xls"
就这样
因为不是我自己写的,所以我必须在源代码中查找这一部分。但是非常感谢你的提示
MacX您是否遇到异常?如果是什么?您在哪个用户下运行应用程序?它是否有权限写入
c:\profiles\myUser\LOKALE~1\temp
?我不明白,您是否正在尝试创建临时文件?如果是这样,您可以使用Path.GetTempPath或GetTempFile或类似工具,而不必关心文件的实际保存位置。我正在尝试保存一个临时文件,以便向用户显示它。但我无法将其与应用程序一起存储。相反,在资源管理器中,我能够写入目录。这个问题可能与环境变量中的字符“~”有关?变量TMP与TMPDIR相同。是否出现异常?如果是什么?您在哪个用户下运行应用程序?它是否有权限写入c:\profiles\myUser\LOKALE~1\temp
?我不明白,您是否正在尝试创建临时文件?如果是这样,您可以使用Path.GetTempPath或GetTempFile或类似工具,而不必关心文件的实际保存位置。我正在尝试保存一个临时文件,以便向用户显示它。但我无法将其与应用程序一起存储。相反,在资源管理器中,我能够写入目录。这个问题可能与环境变量中的字符“~”有关?变量TMP与TMPDIR相同。