问题标签 [temporary-directory]

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 投票
7 回答
2437 浏览

c# - 我应该如何处理我的 Dispose() 方法中的异常?

我想提供一个类来管理临时目录的创建和后续删除。理想情况下,我希望它可以在 using 块中使用,以确保目录被再次删除,无论我们如何离开块:

创建目录没有问题。问题是如何编写 Dispose 方法。当我们尝试删除目录时,我们可能会失败;例如,因为我们仍然在其中打开了一个文件。但是,如果我们允许异常传播,它可能会掩盖在 using 块内发生的异常。特别是,如果 using 块内部发生异常,可能是导致我们无法删除目录的异常,但如果我们屏蔽它,我们就丢失了修复问题的最有用信息。

看来我们有四个选择:

  1. 尝试删除目录时捕获并吞下任何异常。我们可能没有意识到我们未能清理我们的临时目录。
  2. 以某种方式检测 Dispose 是否在引发异常时作为堆栈展开的一部分运行,如果是,则抑制 IOException 或引发合并 IOException 和引发的任何其他异常的异常。甚至可能都不可能。(我之所以想到这一点,部分原因是它可以使用 Python 的上下文管理器,它在很多方面类似于与 C# 的 using 语句一起使用的 .NET 的 IDisposable。)
  3. 永远不要抑制 IOException 无法删除目录。如果在 using 块中抛出异常,我们将隐藏它,尽管它很有可能比我们的 IOException 具有更多的诊断价值。
  4. 放弃在 Dispose 方法中删除目录。该类的用户必须继续负责请求删除目录。这似乎不能令人满意,因为创建类的很大一部分动机是减轻管理此资源的负担。也许还有另一种方法可以提供此功能而不会很容易搞砸?

这些选项之一显然是最好的吗?有没有更好的方法在用户友好的 API 中提供此功能?

0 投票
3 回答
9948 浏览

bash - shell脚本中临时目录中的临时操作

我需要一个新的临时目录来在 shell 脚本中做一些工作。工作完成后(或者如果我中途终止工作),我希望脚本更改回旧的工作目录并清除临时目录。在 Ruby 中,它可能看起来像这样:

在 Bash 脚本中这样做最划算的是什么?

这是我目前的实现。有什么想法或建议吗?

0 投票
2 回答
3132 浏览

python - 在python中使用“临时文件”文件夹

我最近写了一个脚本来查询 PyPI 并下载一个包;但是,包会被下载到用户定义的文件夹中。

如果未指定文件夹,我想修改脚本,使我下载的文件进入临时文件夹。

*nix 机器中的临时文件文件夹是 "/tmp" ;是否有任何 Python 方法可以用来找出特定机器中的临时文件文件夹?

如果没有,有人可以建议这个问题的替代方案吗?

0 投票
3 回答
2214 浏览

haskell - 在 Haskell 中创建一个临时目录

在 Haskell 中安全地创建临时目录的正确方法是什么? System.IO提供了创建临时文件的方法,但我找不到任何对目录有相同作用的东西,无论是 there 还是 in System.DirectorySystem.Posix.DirectorySystem.Posix.Temp. 有没有我忽略的功能,还是我需要自己写一个?(如果是这样,是否有任何危险需要避免,例如创建临时文件?)

0 投票
6 回答
170510 浏览

python - 如何创建临时目录并获取其路径/文件名?

如何在 Python 中创建一个临时目录并获取其路径/文件名?

0 投票
6 回答
23287 浏览

c++ - 如何在 C++ 中创建一个临时目录?

我正在用 C++ 编写一个创建临时目录的函数。这样的功能应该尽可能地便携,例如它应该在linux、mac和win32环境下工作。我该如何做到这一点?

0 投票
3 回答
2888 浏览

c# - 无法生成临时类

我最近将我的机器升级到 XP 64 位并且还对我们的软件进行了一些代码更改,当我这样做时new XmlSerializer(valueType)valueType正在使用的类型在哪里DirectoryItem,我收到以下错误:

无法生成临时类(结果=1)。错误 CS0012:类型“XYZ.Blob.DirectoryItem”在未引用的程序集中定义。您必须添加对程序集“XYZ.Services.Blob,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的引用。

我真的不明白为什么它会显示此错误。该 dll 位于 src 文件夹中,并且完全相同的应用程序在同一台机器(以前的版本)上运行没有问题。

如果您有任何想法,我怎么能找到它给出的这个错误,这将是很好的。

0 投票
3 回答
18713 浏览

linux - 更改 linux 中的临时文件夹位置(对于系统上的所有内容)?

目前它的 /tmp

如何将其设置为 /anythingelse 以便所有应用程序随后使用它?

0 投票
6 回答
15747 浏览

makefile - 如何在 Makefile 中获取我的 make 命令的 pid?

我想使用这个构建唯一的临时目录。如何在 Makefile 中获取 make 命令的 pid?

我试过了:

但这似乎存储TEMPDIR/tmp/myprog.$$然后 eval 作为每个引用它的命令的新 pid!我如何为所有这些获得一个 pid(我更喜欢 make pid,但任何独特的都可以)。

提前致谢。

0 投票
1 回答
843 浏览

ubuntu - 在 ubuntu 10.04 的 /tmp/ 中创建一个永久文件夹

如何在ubuntu的临时文件夹中创建一个永久文件夹?电脑关机时不会被删除,而且每次电脑重启都不需要重复这个过程