我有一个使用 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/