问题标签 [temporary-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7319 浏览

python - 为什么删除临时文件时出现 WindowsError?

  1. 我创建了一个临时文件。
  2. 在创建的文件中添加了一些数据。
  3. 保存它,然后尝试删除它。

但我越来越WindowsError。我在编辑后关闭了文件。如何检查哪个其他进程正在访问该文件。

0 投票
3 回答
2880 浏览

sqlite - sqlite - 内存中的临时数据

我的情况:我有一个基于文件的 sqlite 数据库,并希望在内存中完成所有临时工作(用于大型查询的临时数据库等)。我尝试使用PRAGMA temp_store = 2命令,但我不能 100% 确定它是否真的符合我的要求。奇怪的是,在调试时,我仍然可以使用winGetTempname函数,它会在磁盘上打开一个临时文件!

我想,一旦我设置了这个编译指示,它甚至不应该尝试打开一个临时文件......

我也尝试使用 TEMP_STORE 预处理器标志,但同样,对winGetTempname的调用仍然完成......

有任何想法吗?

0 投票
1 回答
298 浏览

backup - Rsync 在文件大小更改时创建新文件

我需要在程序运行的同时备份(用于调试)一些临时文件。我曾经用rsync-ing/var/tmp/someprogram目录来做到这一点find . -iname 'blahblah' -exec rsync -someoptions $DESTdir,效果很好。

除了某些程序中的某个人(我没有源代码访问权限,而且永远不会有 - 从 COBOL 开始的悲伤和长篇大论......)的情况除外,它会用某个程序中的新内容覆盖临时文件。

例如

  1. 启动PROG程序
  2. 这会B1237在目录中创建一个文件tmp(我rsync每隔几分钟就会输入一次)
  3. 在 PROG 完成 B123 的处理后,它开始另一个循环并B1237使用新内容重新创建,并且rsync-ed 文件将被覆盖。我也需要第一个版本。

有可能以一种简单的方式吗?我正在考虑对 DEST 目录进行时间戳 gzip 压缩,但应该有另一种方式(无需git在 dest 目录中创建(例如)repo,并在同步后提交......

更新: 我没有提到——抱歉——我没有权利在这个 SLES9(企业)服务器上安装任何东西。

提前致谢!

0 投票
1 回答
12217 浏览

c++ - 带有 FILE_FLAG_DELETE_ON_CLOSE 标志的 CreateFile

在我描述我的问题之前,这里是我正在编写的程序(IHExplorer.exe)的描述:

这是一个 C++ 应用程序。

IHExplorer 应用程序看起来尽可能像 Windows 资源管理器窗口。除了一个例外,从这个资源管理器窗口中启动文件将首先将它们解密到用户的临时文件夹,然后启动与文件扩展名关联的应用程序并在关闭时删除文件。

我遇到的问题是文件关闭时自动删除。这是一个场景:

  1. 用户在 IHExplorer 中双击一个加密的 .txt 文件。
  2. IHExplorer 解密内存中的 .txt 文件,然后使用 ::CreateFile 将其写入 %TEMP%,该文件返回文件的句柄(IHExplorer 必须保持此句柄至少打开,直到 .txt 文件被 shell 执行)。

  3. IHExplorer Shell 从其临时位置执行 .txt 文件(通过调用 ::ShellExecute)。

  4. 现在 IHExplorer 和记事本都有打开文件的句柄。
  5. 当 IHExplorer 和记事本都关闭了文件的句柄时,必须自动删除该文件,即使 IHExplorer 先关闭也是如此。

行。这是一个基本的用户案例,描述了我想要发生的事情。我遇到的问题是当我 ::ShellExecute() 时,记事本说“该进程无法访问该文件,因为它正在被另一个进程使用。” (这将是 IHExplorer)。我需要解决这个问题并让记事本打开它,即使我仍然在 IHExplorer 中打开了句柄。

这是我对 ::CreateFile 的调用如下所示:

请注意,我使用了 FILE_SHARE_DELETE 以便其他进程(例如记事本)可以使用删除权限打开文件。

请注意,我使用了 FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE 属性指示文件是临时文件,应在关闭时删除。

还要注意 &sa 参数。这是我正在使用的 SECURITY_ATTRIBUTES 结构,我觉得(希望)这就是我的问题所在。这是代码,这次我将发布整个函数,以便您查看我如何填写 SECURITY_ATTRIBUTES 结构:

我想如果我确定正确的 SECURITY_DESCRIPTOR 传递给 ::CreateFile 它可能会像我想要的那样工作。请帮忙。

顺便说一句,LaunchFile 函数最终只是调用 ::ShellExecute 来启动文件。

0 投票
4 回答
2599 浏览

c# - 编辑:应该在哪里以及如何下载临时文件?

假设我想从网络上运行一个 exe,显然我宁愿将它下载到一个临时文件夹中......从那里运行它,然后删除它(或让操作系统这样做)。是否有任何约定如何做到这一点,同时确保不要轰炸权限问题,覆盖现有文件等?

谢谢。

编辑我从桌面应用程序。顺便说一句,我确实有很多猜测,但我只是想知道什么被接受。

我知道我可以使用Path.GetTempFile,但是它已经为我制作了文件,这让我认为它也可以将它添加到某个数据库中,并跟踪它 - 所以我不能删除它并用我自己的文件替换它.

我知道我也可以使用Path.TempDirectory(或类似的东西)和Path.RandomFileName,但后者在文件名中添加了一个随机扩展名,而我需要 exe,显然这也可以很容易地解决,但对我来说重写似乎很奇怪那位女士已经尝试为我们写信了。

0 投票
2 回答
1327 浏览

java - 在不知道图像路径的情况下将图像添加到 JTooltip(由于图像是临时资源)

更具体一点:我构建了一个简单的多线程 TCPServer (Java),它与客户端 (C#/mono) 通信。根据要求,客户端截取屏幕截图并将其发送到服务器。然后将屏幕截图显示在 JTable 中。我想为表格中的这些图像添加一个工具提示,使用相同的图像但大小不同。目前的代码如下所示:

当然,这是行不通的,因为 src 属性需要路径。问题是,我不知道如何规避这种行为。
因此,我的问题是:
1)如何检索临时资源的有效路径(不将资源保存在文件系统中)

2)如何提供自定义 JTooltip 以轻松显示图像/图像图标

0 投票
4 回答
12852 浏览

python - Windows 中 TEMP 目录的限制?

我有一个用 Python 编写的应用程序,它将大量数据写入%TEMP%文件夹。奇怪的是,每隔一段时间,它就会死去,然后回来IOError: [Errno 28] No space left on device。驱动器有足够的可用空间,%TEMP%不是自己的分区,我是管理员,系统没有配额。

Windows 是否人为地对中的数据设置了某些类型的限制%TEMP%?如果没有,关于可能导致此问题的任何想法?

编辑:在下面的讨论之后,我澄清了这个问题以更好地解释发生了什么。

0 投票
2 回答
835 浏览

bytearray - Java 项目模块 - 使用 InputStream/OutputStream 或 .tmpFile/byte[]

我发现自己在我的应用程序模块周围传递 InputStream/OutputStream 对象。

我想知道是否更好- 将内容保存到磁盘并 在各种方法调用之间
传递类似Resource
的东西- 使用 byte[] 数组
而不是每次都处理流。

在这些情况下你的方法是什么?
谢谢

编辑:
我有一个控制器接收用户上传的文件。我有一个实用程序模块,它提供了一些功能来呈现文件。

InputStream 中的文件是用户上传的文件。os 是与响应关联的流。我想知道是否最好使用实用程序方法将生成的文件保存在 .tmp 文件中并返回文件路径或字节 [] 等,并让控制器直接处理 outputStream。

0 投票
2 回答
4246 浏览

java - Font.createFont 将文件留在临时目录中

下面的代码完成了它的工作,但每次运行时都会在 temp 目录中保留字体文件的副本。这些文件被命名为+~JF7154903081130224445.tmp,其中每个创建的文件的数字似乎是随机的。

我在 sun.com 的论坛和网络上的其他资源中发现了多年的讨论,这被认为是 JDK 中的一个错误,从 1.5.0_06 升级到 1.5.0_08 可以解决问题;但是,我使用的版本是更高版本(1.6.0_13)。

我尝试通过在字体相关操作完成后删除文件来解决问题,但当时文件被锁定。只有在 Web 应用程序停止后才能删除文件。

有人对此有解决方案吗?

0 投票
7 回答
20586 浏览

php - 创建临时文件并自动删除

我正在写一个防盗链下载脚本,我的计划是创建一个临时文件,以session ID命名,然后在session过期后,该文件会被自动删除。可能吗 ?你能给我一些提示如何在 PHP 中做到这一点吗?

非常感谢您的回复