java - 我们可以在java中回滚文件mkdir吗?

标签 java

我有一个使用 java File mkdir 创建多个目录(100 个或更多)的方案,我对此不确定,如果出现任何问题,我们有吗 有任何逻辑可以回滚(删除)所有新创建的目录吗?

for(User user: users){
  File file = new File("Directory");
  if(!file.exist()){
   file.mkdir();
   // if anything goes wrong
   rollback();
  }
}

我已经在谷歌上搜索过,但确实找到了任何合适的答案。

最佳答案

java 中没有为此构建任何内容。我建议您保留一个数据结构来跟踪您的更改,如果您需要回滚,您只需迭代它即可。

伪代码:

boolean rollback = false;
List<File> changes = new ArrayList<File>();

for(int i = 0; i < users.length() && !rollback; i++) {
  User user = users.get(i);
  File file = new File("Directory");
  if(!file.exist()){
    try {
      file.mkdir();
      changes.add(file);
    } catch (Throwable t) {
      rollback = true;
  }
}

if (rollback) {
  // report failure?
  try {
    for(File file : changes) {
      file.rmdir();
    }
  } catch (Throwable t) {
      //So something smart here.
  }
}

关于java - 我们可以在java中回滚文件mkdir吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263131/

相关文章:

java - 如何将图像放在按钮字段上并添加事件

java - 最佳编程环境

java - 我如何为子类使用相同的工厂方法?

java - 如何将 Java 与带有嵌入式 Cassandra 的 Titan 连接起来

java - 如何使用 Selenium WebDriver 查找在每个页面加载时动态 ID/名称发生变化的元素

Java-判断数组的位置变化

java - 如何在另一个线程中创建 Android 通知?

java - 如果有任何编辑文本聚焦,松下扫描仪将在编辑文本中插入数据

java - B 样条基函数似乎产生不正确的值

java - Spark on HBase 异常类未找到(JAVA)