Articles of 临时文件

安全地使用临时文件

在我的程序中有一个静态库,它只能把文件名作为input,而不是实际的文件内容。 对于图书馆的源代码,我无能为力。 所以我想:创build一个全新的文件,将数据存储到它中,将其刷新到磁盘(?),将其名称传递给库,然后删除它。 但我也希望这个过程相当安全: 1)文件必须重新创build,没有任何虚假的数据(也许它不是关键,但无论如何); 2)除了我的进程之外,任何人都不能读/写这个文件(我希望库能够处理我的实际数据,而不是一些聪明的插件)。 3)我完成这个文件后,它必须被删除(好的,如果有人TerminateProcess()我,我猜没有什么可以做的,但仍然)。 该库似乎使用非Unicode fopen()来打开给定的文件,所以我不太清楚如何处理所有这些,因为该程序旨在运行在Windows上。 有什么build议么?

在Linux上,命令行程序mktemp比C函数mkstemp安全吗?

这两个操作都会创build一个空文件并返回文件名,但mkstemp会以独占模式打开该文件,并为您提供句柄。 C函数有没有安全的好处? 这是否意味着在命令行版本中存在安全漏洞? 另外,有趣的是在Linux上的C api中有几个相关的函数,其中大多数在他们的手册页中说“不要使用这个函数”(或类似的)。

C# – 如何删除临时Internet文件

我想彻底清除临时Internet文件夹。 该文件夹的位置,例如, C:\Users\Username\AppData\Local\Microsoft\Windows\Temporary Internet Files ,取决于Windows的版本,因此它必须是dynamic的。

如何创build一个可以被subprocess读取的临时文件?

我正在编写一个Python脚本,需要将一些数据写入临时文件,然后创build一个运行C ++程序的subprocess来读取临时文件。 我试图使用NamedTemporaryFile这个,但根据文档, 当命名的临时文件仍然打开时,名称是否可用于第二次打开该文件,在不同的平台上是不同的(它可以在Unix上使用,不能在Windows NT或更高版本上使用)。 事实上,在Windows上,如果在写入后刷新临时文件,但是不要closures它,直到我想让它消失,则subprocess无法打开它进行读取。 我正在通过创build文件与delete=False ,在产卵subprocess之前closures它,然后手动删除它,一旦我完成: fileTemp = tempfile.NamedTemporaryFile(delete = False) try: fileTemp.write(someStuff) fileTemp.close() # …run the subprocess and wait for it to complete… finally: os.remove(fileTemp.name) 这似乎不雅。 有一个更好的方法吗? 也许一种方法来打开临时文件的权限,以便subprocess可以得到它?

使用后删除临时文件

我需要在Windows Forms .NET 3.5应用程序中使用一些临时文件。 这些文件在外部应用程序中打开,当然可以运行比我自己的程序更长的时间。 是否有任何最佳做法,以确保这些临时文件在任何时候被清理,以避免用不再需要的“垃圾”文件填充用户的硬盘? 还是甚至Windows的那种自动处理呢? 一个很好的例子是任何邮件客户端:当您在任何应用程序中打开附件时,通常会将其写入打开的临时文件。 有没有办法找出这些文件如何pipe理清理? 使用Google向我展示了许多清理和调整工具来手动清理临时目录,但我不想强迫用户这样做。 🙂 任何帮助表示赞赏。 马蒂亚斯

Windows中TEMP目录的限制?

我有一个用Python编写的应用程序将大量的数据写入%TEMP%文件夹。 奇怪的是,每过一段时间,它就会死亡,返回IOError: [Errno 28] No space left on device 。 该驱动器有足够的可用空间, %TEMP%不是自己的分区,我是pipe理员,系统没有配额。 Windows是否在%TEMP%人为设置了某些types的数据限制? 如果没有,有什么可能会导致这个问题的想法? 编辑 :下面的讨论,我澄清了这个问题,以更好地解释发生了什么事情。

我的Windows应用程序应该在哪里存储caching和临时文件?

Windows应用程序应该在哪里caching数据和临时文件数据? 我明白那个 System.Windows.Forms.Application.StartupPath + @"\" + "Cache"; 不是一个好主意,因为该程序可能会被安装在 Program Files \ MyProgram \ 对于所有用户和用户可能无法访问写入该文件夹。