Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问路径:GetTempPath();失败_C#_.net_Filesystems - Fatal编程技术网

C# 访问路径:GetTempPath();失败

C# 访问路径:GetTempPath();失败,c#,.net,filesystems,C#,.net,Filesystems,我想,我的系统面临一个关于环境变量TMP的特殊问题 此变量的定义如下: TMP=c:\profiles\myUser\LOKALE~1\temp 无法通过.net应用程序写入此位置,而通过windows资源管理器,我可以轻松创建文件 有没有办法解决这个问题 问候,, MacX实际上根据MSDN: 引用路径。GetTempPath 此方法按以下顺序检查环境变量是否存在,并使用找到的第一条路径: TMP指定的路径 环境变量 临时文件指定的路径 环境变量 用户配置文件指定的路径 环境变量 Wind

我想,我的系统面临一个关于环境变量TMP的特殊问题

此变量的定义如下:

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相同。