Display Files from a Server Path in Pega Using an Activity and Java Step

 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

To display the files in the server path Create Activity and add these steps
Java used for this activity
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);
}

Post a Comment