Pregunta

Tengo una aplicación escrita en Python que está escribiendo grandes cantidades de datos a la carpeta %TEMP%. Curiosamente, cada vez y un rato, se muere, volviendo IOError: [Errno 28] No space left on device. La unidad tiene un montón de espacio libre, %TEMP% no es su propia partición, soy un administrador, y el sistema no tiene cuotas.

ocurre con las ventanas puso artificialmente algunos tipos de límites en los datos de %TEMP%? Si no, alguna idea de lo que podría ser la causa de este problema?

Editar . Tras las conversaciones mantenidas a continuación, le aclaré la cuestión de explicar mejor lo que está pasando

¿Fue útil?

Solución

¿Cuál es el error exacto encontrado?

¿Está crear demasiados muchos archivos temporales ?

  

El método GetTempFileName elevará   una IOException si se utiliza para   crear más de 65535 archivos sin   la eliminación de archivos temporales anteriores.

     

El método GetTempFileName elevará   una IOException si hay temporal único   nombre de archivo está disponible. Resolver   este error, borrar todo que no sean necesarios   archivos temporales.

Una cosa a tener en cuenta es que si usted está indirectamente mediante la API de Win32, y sólo lo está utilizando para obtener los nombres de archivo temporal, señalar que si bien (indirectamente) llamándolo:

  

Crea un nombre único, cero bytes   archivo temporal en el disco y devuelve el   la ruta completa de ese archivo.

Si estás usando ese camino, sino también cambiar el valor devuelto, tenga en cuenta que en realidad podría ser la creación de un archivo 0byte y un archivo adicional por encima de eso (por ejemplo My_App_tmpXXXX.tmp y tmpXXXX.tmp).

Como Nestor sugiere a continuación, que eliminando los archivos temporales después de que haya terminado de usarlos.

Otros consejos

El uso de un sistema de archivos FAT32 me puedo imaginar que esto ocurre cuando:

  • Escritura de una gran cantidad de datos a un archivo, y alcanzar la tapa de tamaño de 4 GB.
  • O cuando se está creando una gran cantidad de archivos pequeños y llegar a las 2 ^ 16-2 archivos por la tapa directorio.

Aparte de esto, no sé de ningún tipo de limitaciones que el sistema puede imponer a la carpeta de archivos temporales, además de la partición phyiscal estar realmente completa.

Otra limitación es como Mike Atlas ha sugerido la función GetTempFileName() que crea archivos de tipo tmpXXXX.tmp. A pesar de que no puede ser que utilice directamente, compruebe que la carpeta %TEMP% no contiene demasiados de ellos (2 ^ 16).

Y tal vez lo obvio, has vaciado la carpeta% TEMP% antes de ejecutar la utilidad?

No debería ser tal limitación de espacio en la temp. Si escribió la aplicación, recomendaría la creación de los archivos de Datos de programa ...

No debe haber ningún problema en absoluto con respecto a su directorio% TEMP%.

¿Cuál es su cuota de disco para establecer para el volumen de alojamiento% TEMP% 's? Dependiendo en parte de lo que las aplicaciones están haciendo a sí mismos, uno de ellos puede estar lanzando un error debido a la cuota de disco que se alcance, que es un dolor si este contingente se fija excesivamente alto. Si la cuota es muy alta, trate de bajar, lo que se puede hacer como administrador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top