FileUtils
Utility class providing static helper methods for common file operations: name and extension parsing, temporary file and directory creation, file reading and writing, copying, MIME type detection, existence checks, and more. All methods are static.
Name and path utilities
getFileName
Description:
| Method | Return values | Description |
|---|---|---|
|
getFileName(String file) |
String |
Returns the file name without its extension. If no extension is present, returns the original name. |
|
file: The file name (with or without path). |
||
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import com.openkm.util.PathUtils;
import java.io.File;
public class Test {
public static void main(String[] args) {
try {
File file = new File("/home/openkm/test.png");
String docName = PathUtils.getName(file.getPath());
String baseName = FileUtils.getFileName(docName);
System.out.println(baseName); // "test"
} catch (Exception e) {
e.printStackTrace();
}
}
}
getFileExtension
Description:
| Method | Return values | Description |
|---|---|---|
|
getFileExtension(String file) |
String |
Returns the file extension without the leading dot. Returns an empty string if no extension is present. |
|
file: The file name (with or without path). |
||
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import com.openkm.util.PathUtils;
import java.io.File;
public class Test {
public static void main(String[] args) {
try {
File file = new File("/home/openkm/test.png");
String docName = PathUtils.getName(file.getPath());
String extension = FileUtils.getFileExtension(docName);
System.out.println(extension); // "png"
} catch (Exception e) {
e.printStackTrace();
}
}
}
getParent
Description:
| Method | Return values | Description |
|---|---|---|
|
getParent(String file) |
String |
Returns the parent directory path of the given file path. Returns the root separator if there is no parent. |
Example:
String parent = FileUtils.getParent("/home/openkm/test.png");
System.out.println(parent); // "/home/openkm"
toValidFilename
Description:
| Method | Return values | Description |
|---|---|---|
|
toValidFilename(String filename) |
String |
Removes characters that are reserved in Windows file names ( |
Example:
String safe = FileUtils.toValidFilename("report: Q1/2024.pdf");
System.out.println(safe); // "report Q12024.pdf"
getFileNameNotDuplicatedInDestinationPath
Description:
| Method | Return values | Description |
|---|---|---|
|
getFileNameNotDuplicatedInDestinationPath(String pathFile, String name, String ext) |
String |
Returns a unique file name in the given directory. If |
|
pathFile: The target directory path. name: The desired file name without extension. ext: The file extension without leading dot. |
||
Example:
String unique = FileUtils.getFileNameNotDuplicatedInDestinationPath("/home/openkm", "report", "pdf");
System.out.println(unique); // "report.pdf" or "report(1).pdf" if already exists
generateUniqueName
Description:
| Method | Return values | Description |
|---|---|---|
|
generateUniqueName(String basename) |
String |
Generates a unique file name by prepending the current timestamp ( |
Example:
String name = FileUtils.generateUniqueName("report.pdf");
System.out.println(name); // e.g. "20240315143022report.pdf"
Temporary file and directory creation
createTempDir
Description:
| Method | Return values | Description |
|---|---|---|
|
createTempDir() |
File |
Creates and returns a new unique temporary directory using the system temporary directory. |
Example:
File tmpDir = FileUtils.createTempDir();
// use tmpDir ...
FileUtils.deleteQuietly(tmpDir);
createTempFile
Description:
| Method | Return values | Description |
|---|---|---|
|
createTempFile() |
File |
Creates and returns a new unique temporary file with the |
createTempFile (with extension)
Description:
| Method | Return values | Description |
|---|---|---|
|
createTempFile(String ext) |
File |
Creates and returns a new unique temporary file with the specified extension. |
|
ext: The file extension without leading dot (e.g. |
||
createSharedTempFile
Description:
| Method | Return values | Description |
|---|---|---|
|
createSharedTempFile(String ext) |
File |
Creates a unique temporary file in the shared repository temporary directory ( |
createTempFileFromMime
Description:
| Method | Return values | Description |
|---|---|---|
|
createTempFileFromMime(String mimeType) |
File |
Creates a unique temporary file whose extension is resolved from the MIME type via the OpenKM MIME type registry. Falls back to |
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import java.io.File;
public class Test {
public static void main(String[] args) {
try {
File tmp = FileUtils.createTempFile("pdf");
System.out.println("Temp file: " + tmp.getAbsolutePath());
File tmpFromMime = FileUtils.createTempFileFromMime("application/pdf");
System.out.println("Temp from mime: " + tmpFromMime.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Directory creation
createDateDir
Description:
| Method | Return values | Description |
|---|---|---|
|
createDateDir(String parent) |
File |
Creates and returns a |
createDateUserDir
Description:
| Method | Return values | Description |
|---|---|---|
|
createDateUserDir(String parent) |
File |
Creates and returns a |
Example:
File dateDir = FileUtils.createDateDir("/home/openkm/uploads");
System.out.println(dateDir.getAbsolutePath()); // e.g. "/home/openkm/uploads/2024/03/15"
File reading and writing
readFileToByteArray
Description:
| Method | Return values | Description |
|---|---|---|
|
readFileToByteArray(File file) |
byte[] |
Reads the entire content of a file into a byte array. |
readFileToString
Description:
| Method | Return values | Description |
|---|---|---|
|
readFileToString(File file) |
String |
Reads the entire content of a file into a String using UTF-8 encoding. |
readLines
Description:
| Method | Return values | Description |
|---|---|---|
|
readLines(File file) |
List<String> |
Reads a file into a list of lines using UTF-8 encoding. |
writeStringToFile
Description:
| Method | Return values | Description |
|---|---|---|
|
writeStringToFile(File file, String data) |
void |
Writes a String to a file using UTF-8 encoding, creating or overwriting the file. |
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import java.io.File;
import java.util.List;
public class Test {
public static void main(String[] args) {
try {
File tmp = FileUtils.createTempFile("txt");
FileUtils.writeStringToFile(tmp, "Hello, OpenKM!\nLine 2");
String content = FileUtils.readFileToString(tmp);
System.out.println(content);
List<String> lines = FileUtils.readLines(tmp);
System.out.println("Lines: " + lines.size());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Copy operations
copy (InputStream to File)
Description:
| Method | Return values | Description |
|---|---|---|
|
copy(InputStream input, File output) |
void |
Copies the content of an |
copy (Reader to File)
Description:
| Method | Return values | Description |
|---|---|---|
|
copy(Reader input, File output) |
void |
Copies the content of a |
copy (File to OutputStream)
Description:
| Method | Return values | Description |
|---|---|---|
|
copy(File input, OutputStream output) |
void |
Copies a file to an |
copy (File to File)
Description:
| Method | Return values | Description |
|---|---|---|
|
copy(File input, File output) |
void |
Copies a file to another file location. |
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import java.io.*;
public class Test {
public static void main(String[] args) {
try {
File source = new File("/home/openkm/source.pdf");
File dest = FileUtils.createTempFile("pdf");
FileUtils.copy(source, dest);
// Stream version
InputStream is = new FileInputStream(source);
File dest2 = FileUtils.createTempFile("pdf");
FileUtils.copy(is, dest2);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Delete operations
deleteQuietly
Description:
| Method | Return values | Description |
|---|---|---|
|
deleteQuietly(File file) |
boolean |
Deletes a file or directory recursively without throwing exceptions. Returns |
cleanDirectory
Description:
| Method | Return values | Description |
|---|---|---|
|
cleanDirectory(File dir) |
void |
Deletes all files and subdirectories within a directory, leaving the directory itself in place. |
deleteEmpty
Description:
| Method | Return values | Description |
|---|---|---|
|
deleteEmpty(File file) |
void |
Deletes the directory only if it is empty. Does nothing if the path is not a directory or is not empty. |
secureDelete
Description:
| Method | Return values | Description |
|---|---|---|
|
secureDelete(File file) |
boolean |
Overwrites the file with random bytes before deleting it, reducing the chance of data recovery. Returns |
Example:
File tmp = FileUtils.createTempFile("pdf");
// ... write sensitive data to tmp ...
boolean deleted = FileUtils.secureDelete(tmp);
System.out.println("Securely deleted: " + deleted);
Existence checks
existFile
Description:
| Method | Return values | Description |
|---|---|---|
|
existFile(String file) |
boolean |
Returns |
existFile (File)
Description:
| Method | Return values | Description |
|---|---|---|
|
existFile(File file) |
boolean |
Returns |
existDirectory
Description:
| Method | Return values | Description |
|---|---|---|
|
existDirectory(String dir) |
boolean |
Returns |
existDirectory (File)
Description:
| Method | Return values | Description |
|---|---|---|
|
existDirectory(File dir) |
boolean |
Returns |
Example:
if (FileUtils.existFile("/home/openkm/config.properties")) {
System.out.println("Config file found");
}
if (FileUtils.existDirectory("/home/openkm/data")) {
System.out.println("Data directory exists");
}
File listing and counting
listFiles
Description:
| Method | Return values | Description |
|---|---|---|
|
listFiles(File dir, String[] extensions, boolean recursive) |
Collection<File> |
Lists files in a directory filtered by extension. Pass |
|
dir: The directory to search. extensions: Array of extensions to filter (without dots, e.g. recursive: Whether to include subdirectories. |
||
Example:
import java.util.Collection;
import java.io.File;
import com.openkm.util.FileUtils;
Collection<File> pdfs = FileUtils.listFiles(new File("/home/openkm/docs"), new String[]{"pdf"}, true);
System.out.println("PDF files found: " + pdfs.size());
countFiles
Description:
| Method | Return values | Description |
|---|---|---|
|
countFiles(File dir) |
int |
Recursively counts all files and directories within the given directory. |
MIME type detection
getMimeType (InputStream)
Description:
| Method | Return values | Description |
|---|---|---|
|
getMimeType(InputStream is) |
String |
Detects the MIME type from the magic bytes of the stream using Apache Tika. Returns |
getMimeType (File)
Description:
| Method | Return values | Description |
|---|---|---|
|
getMimeType(File file) |
String |
Detects the MIME type of a file from its magic bytes using Apache Tika. Returns |
getMediaType
Description:
| Method | Return values | Description |
|---|---|---|
|
getMediaType(String mimeType) |
MediaType |
Converts a MIME type string (e.g. |
Example:
package com.openkm;
import com.openkm.util.FileUtils;
import java.io.File;
public class Test {
public static void main(String[] args) {
try {
File file = new File("/home/openkm/document.pdf");
String mime = FileUtils.getMimeType(file);
System.out.println("MIME type: " + mime); // "application/pdf"
} catch (Exception e) {
e.printStackTrace();
}
}
}