gpt4 book ai didi

c# - Path.GetRandomFileName 与 Path.GetTempFileName

转载 作者:太空狗 更新时间:2023-10-30 01:00:52 24 4
gpt4 key购买 nike

基于 https://msdn.microsoft.com/en-us/library/system.io.path.getrandomfilename(v=vs.110).aspx 的推荐我已将 GetTempFileName 替换为 GetRandomFileName 以获取临时文件的名称。这会导致问题。有时 GetRandomFileName 返回的不是文件名,而是 System32 文件夹中的位置。并且没有管理员权限的用户会出现找不到文件的错误。我错过了什么吗?

代码如下:

string tempFileName = Path.GetRandomFileName();
文件流 tempFileStream = null;
tempFileStream = File.Open(tempFileName, FileMode.Create, FileAccess.ReadWrite)
;

稍后当我尝试通过代码访问该文件时:

FileInfo fileInfo = new FileInfo(tempFileName);

我有一个错误:

System.UnauthorizedAccessException: Access to the path 'C:\Windows\system32\25ddubwt.qsc' is denied.

我意识到,当用户使用 Windows 菜单/“开始”按钮启动程序时,应用程序的当前目录将为 System32

最佳答案

GetTempFileName() 返回完整路径,GetRandomFileName() 不返回。

如果您假设 GetRandomFileName() 有一个路径并写入它,如果当前目录是 System32,那么文件很可能最终会出现在 System32 中。

修复创建完整路径:

string fname = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());

关于c# - Path.GetRandomFileName 与 Path.GetTempFileName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43098394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com