Limitations of TEMP directory in Windows?

自闭症网瘾萝莉.ら 提交于 2019-12-01 18:16:29

What is the exact error you encounter?

Are you creating too many temp files?

The GetTempFileName method will raise an IOException if it is used to create more than 65535 files without deleting previous temporary files.

The GetTempFileName method will raise an IOException if no unique temporary file name is available. To resolve this error, delete all unneeded temporary files.

One thing to note is that if you're indirectly using the Win32 API, and you're only using it to get temp file names, note that while (indirectly) calling it:

Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

If you're using that path but also changing the value returned, be aware you might actually be creating a 0byte file and an additional file on top of that (e.g. My_App_tmpXXXX.tmp and tmpXXXX.tmp).

As Nestor suggested below, consider deleting your temp files after you're done using them.

Using a FAT32 filesystem I can imagine this happening when:

  • Writing a lot of data to one file, and you reach the 4GB file size cap.
  • Or when you are creating a lot of small files and reaching the 2^16-2 files per directory cap.

Apart from this, I don't know of any limitations the system can impose on the temp folder, apart from the phyiscal partition actually being full.

Another limitation is as Mike Atlas has suggested the GetTempFileName() function which creates files of type tmpXXXX.tmp. Although you might not be using it directly, verify that the %TEMP% folder does not contain too many of them (2^16).

And maybe the obvious, have you tried emptying the %TEMP% folder before running the utility?

Nestor

There shouldn't be such space limitation in Temp. If you wrote the app, I would recommend creating your files in ProgramData...

There should be no trouble whatsoever with regard to your %TEMP% directory.

What is your disk quota set to for %TEMP%'s hosting volume? Depending in part on what the apps themselves are doing, one of them may be throwing an error due to the disk quota being reached, which is a pain if this quota is set unreasonably high. If the quota is very high, try lowering it, which you can do as Administrator.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!