tom*_*tom 1 java servlets temporary-directory
我在这里找到了一些用于在 Java 中创建临时目录的代码。
public static File createTempDirectory() throws IOException
{
final File temp;
temp = File.createTempFile("temp", Long.toString(System.nanoTime()));
if(!(temp.delete()))
{
throw new IOException("Could not delete temp file: " + temp.getAbsolutePath());
}
if(!(temp.mkdir()))
{
throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());
}
return temp;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 servlet 生命周期结束时处理这个临时目录并删除它?
第一的:
不要使用这种创建临时目录的方法!这是不安全的!请改用Guava方法Files.createTempDir()(如果您不想使用 Guava,请手动重新实现)。其JavaDoc中描述了原因:
一个常见的陷阱是调用
createTempFile、删除文件并在其位置创建一个目录,但这会导致竞争条件,可被利用来创建安全漏洞,特别是当要将可执行文件写入目录时。
关于你真正的问题:
您需要手动删除该目录,这意味着您需要跟踪您创建的所有目录(例如在 a 中Collection<File>),并在您确定不再需要它们时将其删除。
| 归档时间: |
|
| 查看次数: |
5502 次 |
| 最近记录: |