Path.GetTempFileName() - 我能否将其更改为使用共享驱动器?

3
使用VS2008,c#编程。 当我调用Path.GetTempFileName()方法时,生成的临时文件路径如下: C:\Users\allensamuel\AppData\Local\Temp\tmpC1D0.tmp 然而,在我工作的公司里,禁止使用C:盘进行文件操作。相反,登录脚本会将用户的“我的文档”和“主目录”(包括设置等)指向网络H:盘。 我不知道为什么Path.GetTempFileName()选择了C:盘,也不知道如何指示它使用H:盘。 有任何想法吗?我不想创建自己的版本来解决这个问题。

你可能会发现这很方便... http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx - Austin Salonen
谢谢 - 我还没有使用 .Net 4,奇怪的是他们现在将环境变量放在备注部分,而不是3.5版本! - Iain
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
5
它选择这条路径是因为它设置在%TEMP%环境变量中。尝试将此变量设置为指向H驱动器周围的某个位置。

+1 有人会认为这应该由某些域策略来设置。 - Austin Salonen
当H:已经联网(OP声称它已经联网),fileIOPermissions呢? - rene
@rene,我认为这并不重要是网络驱动器还是其他类型的驱动器。如果用户拥有写入权限,那么它应该可以正常工作,否则为什么OP会想要这样做呢? - Snowbear
我更多地是指CodeAccessSecurity。H:\被认为是本地驱动器,只有像\server\share这样的unc路径才是网络路径吗?OP使用的是2.0版本,所以放宽的规则还没有到位? - rene
谢谢您的回复,我可以确认%TEMP%已设置为C盘,并且.Net 4文档明确说明此环境变量控制此方法的行为(也感谢上面的Ausin)。 我会检查为什么会发生这种情况,因为我认为我们的域策略不应该将其保留为C驱动器。 - Iain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,