我有一个应用程序Python编写这就是写作的大量数据 %TEMP% 文件夹。奇怪的是,每一次和一段时间,它死了,回来 IOError: [Errno 28] No space left on device.驱动器 很多 自由空间, %TEMP% 不是它自己的分区,我是个管理员,并且该系统没有配额。

不Windows人为地把某些类型的限制的数据 %TEMP%?如果不是,任何想法,可能是什么造成这一问题?

编辑:以下讨论下面,我澄清的问题,以更好地解释什么。

有帮助吗?

解决方案

什么是确切的错误您遇到?

创建过多许多临时文件

  

在GetTempFileName方法将提高   如果它是用来一个IOException   创建多个的 65535 文件,而不   删除先前的临时文件。

     

在GetTempFileName方法将提高   一个IOException如果没有独特的临时   文件名是可用的。解决   这个错误,删除所有不必要的   临时文件。

有一点需要注意的是,如果你是间接地使用Win32 API,而你只用它来获取临时文件名,请注意,尽管(间接)调用它:

  

<强>创建唯一命名的,的零字节   在磁盘上的临时文件并返回   该文件的完整路径。

如果您使用的路径,而且也改变返回值,要知道,你实际上可能会创建一个0byte文件,并在此基础之上的附加文件(例如My_App_tmpXXXX.tmp和tmpXXXX.tmp)。

由于内斯特以下建议,考虑删除您的临时文件你使用它们完成后。

其他提示

使用FAT32文件系统我可以想象一下这种情况发生时:

  • 写的很多数据的一个文件,和你到达4G文件大小帽子。
  • 或者当你们创造了很多小型的文件和达到2^16-2的文件目录盖。

除了这个,我不知道的任何限制的系统可以对临时文件夹,除了phyiscal分区实际上正在满。

另一个局限是,作为迈克Atlas系统的建议 GetTempFileName() 功能创造的文件的类型 tmpXXXX.tmp.虽然你可能不会直接使用时,验证 %TEMP% 文件夹中不包含太多的人(2^16条)。

也许显而易见的,你有没有尝试过清空%TEMP文件夹之前的运行工具?

有不应该在温度这样的空间的限制。如果你写的应用程序,我会建议在ProgramData创建文件...

不应该有任何麻烦关于您的%TEMP%目录。

什么是你的磁盘配额设置为%TEMP%的托管量?这部分地取决于所达成什么自己在做什么,他们中的一个可能会引发错误是由于磁盘配额的应用程序,这是一个痛苦,如果此配额设置太高。如果配额是非常高的,尝试降低它,您可以为管理员做的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top