IDataCursor idcPipeline = pipeline.getCursor(); String directory = null; if (idcPipeline.first("directory")) { directory = (String)idcPipeline.getValue(); } else { throw new ServiceException("Directory is null!"); } String strFileSeparator = System.getProperty("file.separator"); int numFiles = 0; File dir = new File(directory); if (!dir.exists() || !dir.isDirectory()) { throw new ServiceException("Error reading directory!"); } String dir_list[]; dir_list = dir.list(); int num_filesanddir = dir_list.length; if (num_filesanddir < 1) //No files to send { idcPipeline.insertAfter("numFiles", Integer.toString(numFiles)); return; } //Determine number of actual files File curr_file; for (int i = 0; i < num_filesanddir; i++) { curr_file = new File(directory + strFileSeparator + dir_list[i]); if (curr_file.isFile()) { numFiles++; } } curr_file = null; //Create array with only names of files (excluding directories) String [] fileList = new String[numFiles]; String [] fileList_fullpathnames = new String[numFiles]; numFiles = 0; for (int i = 0; i < num_filesanddir; i++) { curr_file = new File(directory + strFileSeparator + dir_list[i]); if (curr_file.isFile()) { fileList[numFiles] = dir_list[i]; // Assemble fully qualified filenames (check UNIX & NT) char lastChar = directory.charAt(directory.length() - 1); if ((lastChar == '\\') || (lastChar == '/')) { fileList_fullpathnames[numFiles] = directory + dir_list[i]; } else { fileList_fullpathnames[numFiles] = directory + strFileSeparator + dir_list[i]; } numFiles++; } } curr_file = null; idcPipeline.insertAfter("numFiles", Integer.toString(numFiles)); idcPipeline.insertAfter("fileList",fileList); idcPipeline.insertAfter("fileList_fullpathnames",fileList_fullpathnames); idcPipeline.destroy();