| exists | The files that match the file specification. | 
| file | The file specification. | 
| lastModified | If a single file is found, this is the last modified date of the file. | 
| name | A name, can be any text. | 
| result | |
| size | If a single file is found, this is the size of the file in bytes, or -1 if a single file hasn't been found. | 
| Example 1 | A simple example checking for a single file. | 
| Example 2 | File polling. | 
| Example 3 | Using exists and processing the files found. | 
| Access | READ_ONLY | 
| Required | R/O. | 
The files that match the file specification.
| Configured By | ATTRIBUTE | 
| Access | READ_WRITE | 
| Required | Yes. | 
The file specification. The file specification can contain wild card characters.
| Access | READ_ONLY | 
| Required | R/O. | 
If a single file is found, this is the last modified date of the file.
| Configured By | ATTRIBUTE | 
| Access | READ_WRITE | 
| Required | No. | 
A name, can be any text.
| Access | READ_ONLY | 
| Access | READ_ONLY | 
| Required | R/O. | 
If a single file is found, this is the size of the file in bytes, or -1 if a single file hasn't been found.
A simple example checking for a single file.
<oddjob id="this">
    <job>
        <exists file="${this.args[0]}/test/io/reference/test1.txt"/>
    </job>
</oddjob>
    
    File polling.
<oddjob id="this" xmlns:scheduling="http://rgordon.co.uk/oddjob/scheduling" xmlns:schedules="http://rgordon.co.uk/oddjob/schedules">
    <job>
        <sequential name="The Classic File Polling Example">
            <jobs>
                <scheduling:retry limits="${timer.current}">
                    <schedule>
                        <schedules:interval interval="00:00:02"/>
                    </schedule>
                    <job>
                        <sequential id="echo-when-file">
                            <jobs>
                                <exists id="check" name="Check File Exists" file="${work.dir}/done.flag"/>
                                <echo>Found ${check.exists[0]}</echo>
                            </jobs>
                        </sequential>
                    </job>
                </scheduling:retry>
            </jobs>
        </sequential>
    </job>
</oddjob>
    
    Using exists and processing the files found.
<oddjob id="this">
    <job>
        <sequential name="Find Files">
            <jobs>
                <exists id="exists" file="${this.args[0]}/test/io/reference/test*.txt"/>
                <foreach id="found">
                    <values>
                        <value value="${exists.exists}"/>
                    </values>
                    <configuration>
                        <xml>
                            <foreach id="found">
                                <job>
                                    <echo>found ${found.current}</echo>
                                </job>
                            </foreach>
                        </xml>
                    </configuration>
                </foreach>
            </jobs>
        </sequential>
    </job>
</oddjob>