# 与Windows临时目录相关的问题 # 问题现象 现象1: Exception:目录名称无效。 ``` Exception:在 MS.Win32.UnsafeNativeMethods.GetTempFileName(String tmpPath, String prefix, UInt32 uniqueIdOrZero, StringBuilder tmpFileName) 在 System.Windows.Media.Imaging.BitmapDownload.BeginDownload(BitmapDecoder decoder, Uri uri, RequestCachePolicy uriCachePolicy, Stream stream) 在 ``` 现象2:异常来自 HRESULT:0x80072EE4 ``` Exception:在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) 在 MS.Win32.WinInet.get_InternetCacheFolder() 在 System.Windows.Media.Imaging.BitmapDownload.BeginDownload(BitmapDecoder decoder, Uri uri, RequestCachePolicy uriCachePolicy, Stream stream) 在 System.Windows.Media.Imaging.LateBoundBitmapDecoder..ctor(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy requestCachePolicy) 在 ``` 现象3:Exception:对路径“C:\Users\xxxx\AppData\Local\Temp\WPF\x4aev0kr.mx0”的访问被拒绝 ``` 在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 在 System.IO.FileHelper.CreateAndOpenTemporaryFile(String& filePath, FileAccess fileAccess, FileOptions fileOptions, String extension, String subFolder) 在 System.Windows.Input.Cursor.LoadFromStream(Stream cursorStream) 在 System.Windows.Controls.GridViewColumnHeader.GetCursor(Int32 cursorID) 在 ``` # 问题分析 Quicker以及所基于的WPF技术,在许多时候需要使用Windows的临时文件夹保存数据。比如缓存图标,执行脚本,以及wpf某些组件的运行机制。 如果Windows临时文件夹不存在或因为权限等问题无法访问,则可能会造成这些错误。 Windows临时文件夹有几个。 1. Internet 文件临时文件夹。 WPF在下载图片时,会将图片缓存到这个文件夹。如果操作失败,可能会提示 异常来自 HRESULT:0x80072EE4 错误,解决方法是先重启一下电脑看看能不能解决,如果不能可以参考[https://getquicker.net/kc/help/doc/error\_0x80072ee4](https://getquicker.net/kc/help/doc/error_0x80072ee4) 2. Windows临时目录TEMP TEMP目录的位置是在系统环境变量中设置的,具体位置可以在资源管理器地址栏中输入%TEMP%后打开。![](https://files.getquicker.net/_sitefiles/kc/kb/2019/11/15/091533_3_mceclip0.png?x-oss-process=image/resize,w_800) 请确保此文件夹的安全设置是正常的,下图中是我电脑的权限设置截图供参考(3个帐号条目的权限相同) ![](https://files.getquicker.net/_sitefiles/kc/kb/2019/11/15/091710_3_mceclip1.png?x-oss-process=image/resize,w_800)