📄 filelister.java
字号:
/*
* Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.store;
import java.sql.SQLException;
import java.util.ArrayList;
import org.h2.engine.Constants;
import org.h2.util.FileUtils;
/**
* Utility class to list the files of a database.
*/
public class FileLister {
public static String getDatabaseNameFromFileName(String fileName) {
if (fileName.endsWith(Constants.SUFFIX_DATA_FILE)) {
return fileName.substring(0, fileName.length() - Constants.SUFFIX_DATA_FILE.length());
}
return null;
}
/**
* Get the list of database files.
*
* @param dir the directory (null for the current directory)
* @param db the database name (null for all databases)
* @param all if true, files such as the lock, trace, hash index, and lob
* files are included. If false, only data, index and log files
* are returned
* @return the list of files
*/
public static ArrayList getDatabaseFiles(String dir, String db, boolean all) throws SQLException {
if (dir == null || dir.equals("")) {
dir = ".";
}
dir = FileUtils.normalize(dir);
ArrayList files = new ArrayList();
String start = db == null ? null : FileUtils.normalize(dir + "/" + db);
String[] list = FileUtils.listFiles(dir);
for (int i = 0; list != null && i < list.length; i++) {
String f = list[i];
boolean ok = false;
if (f.endsWith(Constants.SUFFIX_DATA_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_INDEX_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_LOG_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_HASH_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_LOBS_DIRECTORY)) {
files.addAll(getDatabaseFiles(f, null, all));
ok = true;
} else if (f.endsWith(Constants.SUFFIX_LOB_FILE)) {
ok = true;
} else if (all) {
if (f.endsWith(Constants.SUFFIX_LOCK_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_TEMP_FILE)) {
ok = true;
} else if (f.endsWith(Constants.SUFFIX_TRACE_FILE)) {
ok = true;
}
}
if (ok) {
if (db == null || FileUtils.fileStartsWith(f, start + ".")) {
String fileName = f;
files.add(fileName);
}
}
}
return files;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -