In some enterprise applications, you may need to display the list of files and folders available in a server directory directly inside a Pega application. This can be useful for:
- Monitoring batch file drops
- Viewing integration files
- Validating document uploads
- Supporting admin utilities
- Troubleshooting file-processing jobs
This article explains how to create a Pega Activity that reads files from a server directory using Java and stores the results into a Page List for UI display or further processing.
Use Case
The requirement is simple:
Read all files and folders from a server directory and display:
- File name
- Folder name
- File size
- File creation date/time
The solution uses:
- A Pega Activity
- Java Step
-
Code-Pega-List -
pxResults - Java File APIs
try {
ClipboardPage PLPage = tools.createPage("Code-Pega-List" , "");
ClipboardPage ResultPage = tools.createPage("Data-", "");
oLog.infoForced("[FilesInDirectory] try block started ");
java.io.File fileContents[] = new java.io.File(Directory).listFiles();
if (fileContents != null) {
for (int i = 0; i < fileContents.length; i++) {
if(fileContents[i].isDirectory())
{
ResultPage.putString ("pyLabel", "[FilesInDirectory] Folder: "+fileContents[i]);
tools.findPage("PLPage").getProperty("pxResults").add(ResultPage);
oLog.infoForced("[FilesInDirectory] Folder: "+fileContents[i]);
}
else
{
//long fileSize = fileContents[i].length();
ResultPage.putString ("pyLabel", "[FilesInDirectory] File: "+fileContents[i]);
ResultPage.putString ("pyNote", "[FilesInDirectory] size(bytes): "+fileContents[i].length());
// Getting the file creation datetime
java.nio.file.Path filePath = fileContents[i].toPath();
java.nio.file.attribute.BasicFileAttributes attrs = java.nio.file.Files.readAttributes(filePath, java.nio.file.attribute.BasicFileAttributes.class);
java.nio.file.attribute.FileTime creationTime = attrs.creationTime();
// Adding the creation time to the ResultPage
ResultPage.putString("TempSelectedEffectiveDate", "[FilesInDirectory] Creation Time: " + creationTime.toString());
tools.findPage("PLPage").getProperty("pxResults").add(ResultPage);
oLog.infoForced("[FilesInDirectory] File: "+fileContents[i]);
}
}
}
oLog.infoForced("[FilesInDirectory] try block Ended ");
} catch (Exception ex) {
oLog.error("[FilesInDirectory] catch block expected", ex);
}





