com.ibm.as400.access

Class IFSFile

  • All Implemented Interfaces:
    Serializable, Comparable


    public class IFSFile
    extends Object
    implements Serializable, Comparable
    Represents an object in the IBM i integrated file system. As in java.io.File, IFSFile is designed to work with the object as a whole. For example, use IFSFile to delete or rename a file, to access the file's attributes (is the object a file or a directory, when was the file last changed, is the file hidden, etc.), or to list the contents of a directory. Use IFSFileInputStream or IFSRandomAccessFile to read data from the file, and IFSFileOutputStream or IFSRandomAccessFile to write data to the file. Note that for invalid symbolic links, both isFile and isDirectory will return false.

    IFSFile objects are capable of generating file events that call the following FileListener methods: fileDeleted() and fileModified().

    The following example demonstrates the use of IFSFile:

     // Work with /Dir/File.txt on the system named MYSYSTEM.
     AS400 as400 = new AS400("MYSYSTEM");
     IFSFile file = new IFSFile(as400, "/Dir/File.txt");
    
     // Determine the parent directory of the file.
     String directory = file.getParent();
    
     // Determine the name of the file.
     String name = file.getName();
    
     // Determine the file size.
     long length = file.length();
    
     // Determine when the file was last modified.
     Date date = new Date(file.lastModified());
    
     // Delete the file.
     if (file.delete() == false)
     {
       // Display the error code.
       System.out.println("Unable to delete file.");
     }
     

    Note: Because of a host server restriction, you cannot use this class to access files in QTEMP.LIB.

    Note: Support for "large files" (files larger than 2 gigabytes) was added to the File Server in IBM i V6R1, and was not PTF'd back to prior IBM i versions. The Toolbox's IFS classes rely on the File Server to access and manipulate files in the integrated file system.

    Note on the use of IFS classes when accessing QSYS files:
    The IFS classes are of limited usefulness when accessing formatted file objects under QSYS, such as physical files and save files. The IFS classes perform their work via datastream requests that are sent to the "File Server" job on the IBM i system. The File Server has its own idea of what is a "file" versus a "directory". In the case of a QSYS file object that contains records and/or members, the File Server tends to view such an object as a composite "directory" rather than a flat data "file" (since the File Server wouldn't be free to just start reading/writing bytes of data from/to the file at whatever offset, without ending up with meaningless or corrupted data). The File Server has no awareness of, or respect for, file record structure. When accessing QSYS file objects, consider the use of other classes such as SequentialFile, KeyedFile, and SaveFile.

    See Also:
    FileEvent, addFileListener(FileListener), removeFileListener(FileListener), IFSJavaFile, IFSRandomAccessFile, IFSFileInputStream, IFSFileOutputStream, IFSFileReader, IFSFileWriter, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static String pathSeparator
      The integrated file system path separator string used to separate paths in a path list.
      static char pathSeparatorChar
      The integrated file system path separator character used to separate paths in a path list.
      static int PATTERN_OS2
      Value for indicating that "OS/2" pattern-matching is used by the various list() and listFiles() methods.
      static int PATTERN_POSIX
      Value for indicating that "POSIX" pattern-matching is used by the various list() and listFiles() methods.
      static int PATTERN_POSIX_ALL
      Value for indicating that "POSIX-all" pattern-matching is used by the various list() and listFiles() methods.
      static String separator
      The integrated file system directory separator string used to separate directory/file components in a path.
      static char separatorChar
      The integrated file system directory separator character used to separate directory/file components in a path.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      void addFileListener(FileListener listener)
      Adds a file listener to receive file events from this IFSFile.
      void addPropertyChangeListener(PropertyChangeListener listener)
      Adds a property change listener.
      void addVetoableChangeListener(VetoableChangeListener listener)
      Adds a vetoable change listener.
      boolean canExecute()
      Determines if the application is allowed to execute the integrated file system object represented by this object.
      boolean canRead()
      Determines if the application can read from the integrated file system object represented by this object.
      boolean canWrite()
      Determines if the application can write to the integrated file system object represented by this object.
      void clearCachedAttributes()
      Clear the cached attributes.
      int compareTo(Object obj)
      Compares the path of this IFSFile with an Object's path.
      boolean copyTo(String path)
      Copies this file or directory to the specified file or directory on the system.
      long created()
      Determines the time that the integrated file system object represented by this object was created.
      boolean createNewFile()
      Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.
      boolean delete()
      Deletes the integrated file system object represented by this object.
      Enumeration enumerateFiles()
      Lists the integrated file system objects in the directory represented by this object.
      Enumeration enumerateFiles(IFSFileFilter filter)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      Enumeration enumerateFiles(IFSFileFilter filter, String pattern)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      Enumeration enumerateFiles(String pattern)
      Lists the integrated file system objects in the directory represented by this object.
      boolean equals(Object obj)
      Determines if two IFSFile objects are equal.
      boolean exists()
      Determines if the integrated file system object represented by this object exists.
      String getAbsolutePath()
      Returns the path name of the integrated file system object represented by this object.
      int getASP()
      Return the auxiliary storage pool (ASP) that holds the object.
      String getCanonicalPath()
      Returns the canonical pathname string of the integrated file system object represented by this object.
      int getCCSID()
      Returns the file's data CCSID.
      String getFileSystem()
      Returns the full path of the object.
      long getFreeSpace()
      Returns the amount of unused storage space that is available to the user.
      static long getFreeSpace(AS400 system)
      Returns the amount of unused storage space that is available to the user.
      String getName()
      Determines the name of the integrated file system object represented by this object.
      int getOwnerId()
      Deprecated. 
      Use getOwnerUID() instead.
      String getOwnerName()
      Returns the name of the user profile that is the owner of the file.
      long getOwnerUID()
      Returns the "user ID number" of the owner of the integrated file system file.
      String getParent()
      Returns the path of the parent directory of the integrated file system object represented by this object.
      IFSFile getParentFile()
      Returns the parent directory of the current object.
      String getPath()
      Returns the path of the integrated file system object represented by this object.
      String getPathPointedTo()
      Returns the path of the integrated file system object that is directly pointed to by the symbolic link represented by this object; or null if the file is not a symbolic link or does not exist.
      int getPatternMatching()
      Returns the pattern-matching behavior used when files are listed by any of the list() or listFiles() methods.
      Permission getPermission()
      Returns the permission of the object.
      String getSubtype()
      Returns the subtype of the integrated file system object represented by this object.
      AS400 getSystem()
      Returns the system that this object references.
      int hashCode()
      Computes a hash code for this object.
      boolean isAbsolute()
      Determines if the path name of this integrated file system object is an absolute path name.
      boolean isDirectory()
      Determines if the integrated file system object represented by this object is a directory.
      boolean isFile()
      Determines if the integrated file system object represented by this object is a "normal" file.
      boolean isHidden()
      Determines if the integrated file system object represented by this object is hidden.
      boolean isReadOnly()
      Determines if the integrated file system object represented by this object is read only.
      boolean isSorted()
      Returns the sorting behavior used when files are listed by any of the list() or listFiles() methods.
      boolean isSourcePhysicalFile()
      Determines if the file is an IBM i "source physical file".
      boolean isSymbolicLink()
      Determines if the integrated file system object represented by this object is a symbolic link.
      long lastAccessed()
      Determines the time that the integrated file system object represented by this object was last accessed.
      long lastModified()
      Determines the time that the integrated file system object represented by this object was last modified.
      long length()
      Determines the length of the integrated file system object represented by this object.
      String[] list()
      Lists the integrated file system objects in the directory represented by this object.
      String[] list(IFSFileFilter filter)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      String[] list(IFSFileFilter filter, String pattern)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      String[] list(String pattern)
      Lists the integrated file system objects in the directory represented by this object that match pattern.
      IFSFile[] listFiles()
      Lists the integrated file system objects in the directory represented by this object.
      IFSFile[] listFiles(IFSFileFilter filter)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      IFSFile[] listFiles(IFSFileFilter filter, String pattern)
      Lists the integrated file system objects in the directory represented by this object that satisfy filter.
      IFSFile[] listFiles(String pattern)
      Lists the integrated file system objects in the directory represented by this object that match pattern.
      boolean mkdir()
      Creates an integrated file system directory whose path name is specified by this object.
      boolean mkdirs()
      Creates an integrated file system directory whose path name is specified by this object.
      void removeFileListener(FileListener listener)
      Removes a file listener so that it no longer receives file events from this IFSFile.
      void removePropertyChangeListener(PropertyChangeListener listener)
      Removes a property change listener.
      void removeVetoableChangeListener(VetoableChangeListener listener)
      Removes a vetoable change listener.
      boolean renameTo(IFSFile file)
      Renames the integrated file system object specified by this object to have the path name of file.
      boolean setCCSID(int ccsid)
      Sets the file's data CCSID.
      boolean setHidden()
      Marks the integrated file system object represented by this object as hidden.
      boolean setHidden(boolean attribute)
      Changes the hidden attribute of the integrated file system object represented by this object.
      boolean setLastModified(long time)
      Changes the last modified time of the integrated file system object represented by this object to time.
      void setLastModifiedV(long time)
      Beans friendly version of setLastModified.
      boolean setLength(int length)
      Sets the length of the integrated file system object represented by this object.
      void setPath(String path)
      Sets the file path.
      void setPatternMatching(int patternMatching)
      Sets the pattern-matching behavior used when files are listed by any of the list() or listFiles() methods.
      void setPermission(Permission permission)
      Sets the permission of the object.
      boolean setReadOnly()
      Marks the integrated file system object represented by this object so that only read operations are allowed.
      boolean setReadOnly(boolean attribute)
      Changes the read only attribute of the integrated file system object represented by this object.
      void setSorted(boolean sort)
      Sets the sorting behavior used when files are listed by any of the list() or listFiles() methods.
      void setSystem(AS400 system)
      Sets the system.
      String toString()
      Generates a String representation of this object.
    • Field Detail

      • pathSeparator

        public static final String pathSeparator
        The integrated file system path separator string used to separate paths in a path list.
        See Also:
        Constant Field Values
      • pathSeparatorChar

        public static final char pathSeparatorChar
        The integrated file system path separator character used to separate paths in a path list.
        See Also:
        Constant Field Values
      • separator

        public static final String separator
        The integrated file system directory separator string used to separate directory/file components in a path.
        See Also:
        Constant Field Values
      • separatorChar

        public static final char separatorChar
        The integrated file system directory separator character used to separate directory/file components in a path.
        See Also:
        Constant Field Values
      • PATTERN_POSIX

        public static final int PATTERN_POSIX
        Value for indicating that "POSIX" pattern-matching is used by the various list() and listFiles() methods.
        Using POSIX semantics, all files are listed that match the pattern and do not begin with a period (unless the pattern begins with a period). In that case, names beginning with a period are also listed. Note that when no pattern is specified, the default pattern is "*".
        Note: In OS/400 V5R1 and earlier, all files that match the pattern are listed, including those that begin with a period.
        See Also:
        Constant Field Values
      • PATTERN_POSIX_ALL

        public static final int PATTERN_POSIX_ALL
        Value for indicating that "POSIX-all" pattern-matching is used by the various list() and listFiles() methods.

        Using POSIX semantics, all files are listed that match the pattern, including those that begin with a period.

        See Also:
        Constant Field Values
      • PATTERN_OS2

        public static final int PATTERN_OS2
        Value for indicating that "OS/2" pattern-matching is used by the various list() and listFiles() methods. Using DOS semantics, all files are listed that match the pattern.
        See Also:
        Constant Field Values
    • Constructor Detail

      • IFSFile

        public IFSFile()
        Constructs an IFSFile object. It creates a default IFSFile instance.
      • IFSFile

        public IFSFile(AS400 system,
               IFSFile directory,
               String name)
        Constructs an IFSFile object. It creates an IFSFile instance that represents the integrated file system object on system that has a path name of directory, that is followed by the separator character and name.
        Parameters:
        system - The system that contains the file.
        directory - The directory.
        name - The file name.
      • IFSFile

        public IFSFile(AS400 system,
               String path)
        Constructs an IFSFile object. It creates an IFSFile instance that represents the integrated file system object on system that has a path name of path.
        Parameters:
        system - The system that contains the file.
        path - The absolute path name of the file.
      • IFSFile

        public IFSFile(AS400 system,
               String directory,
               String name)
        Constructs an IFSFile object. It creates an IFSFile instance that represents the integrated file system object on system that has a path name is of directory, followed by the separator character and name.
        Parameters:
        system - The system that contains the file.
        directory - The directory path name.
        name - The file name.
      • IFSFile

        public IFSFile(AS400 system,
               IFSJavaFile directory,
               String name)
        Constructs an IFSFile object. It creates an IFSFile instance that represents the integrated file system object on system that has a path name of directory, that is followed by the separator character and name.
        Parameters:
        system - The system that contains the file.
        directory - The directory.
        name - The file name.
      • IFSFile

        public IFSFile(IFSFile directory,
               String name)
        Creates a new IFSFile instance from a parent abstract pathname and a child pathname string.

        The directory argument cannot be null. The constructed IFSFile instance uses the following settings taken from directory:

        • system
        • path
        The resulting file name is taken from the path name of directory, followed by the separator character, followed by name.
        Parameters:
        directory - The directory where the IFSFile is or will be stored.
        name - The name of the IFSFile object.

    • Method Detail

      • addFileListener

        public void addFileListener(FileListener listener)
        Adds a file listener to receive file events from this IFSFile.
        Parameters:
        listener - The file listener.
      • addPropertyChangeListener

        public void addPropertyChangeListener(PropertyChangeListener listener)
        Adds a property change listener.
        Parameters:
        listener - The property change listener to add.
      • addVetoableChangeListener

        public void addVetoableChangeListener(VetoableChangeListener listener)
        Adds a vetoable change listener.
        Parameters:
        listener - The vetoable change listener to add.
      • canExecute

        public boolean canExecute()
                           throws IOException
        Determines if the application is allowed to execute the integrated file system object represented by this object. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false. If the user profile has *ALLOBJ special authority (and system is V5R1 or higher), this method always returns true.
        Returns:
        true if the object exists and is executable by the application; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • canRead

        public boolean canRead()
                        throws IOException
        Determines if the application can read from the integrated file system object represented by this object. Note that IBM i directories are never readable; only files can be readable.
        Returns:
        true if the object exists and is readable by the application; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • canWrite

        public boolean canWrite()
                         throws IOException
        Determines if the application can write to the integrated file system object represented by this object. Note that IBM i directories are never writable; only files can be writable.
        Returns:
        true if the object exists and is writeable by the application; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • clearCachedAttributes

        public void clearCachedAttributes()
        Clear the cached attributes. This is needed when cached attributes need to be refreshed.
        See Also:
        listFiles()
      • compareTo

        public int compareTo(Object obj)
        Compares the path of this IFSFile with an Object's path. If the other object is not an IFSFile or java.io.File, this method throws a ClassCastException, since IFSFile is comparable only to IFSFile and java.io.File.

        Note:
        The comparison is case sensitive.

        Specified by:
        compareTo in interface Comparable
        Parameters:
        obj - The Object to be compared.
        Returns:
        0 if this IFSFile path equals the argument's path; a value less than 0 if this IFSFile path is less than the argument's path; and a value greater than 0 if this IFSFile path is greater than the argument's path.
      • copyTo

        public boolean copyTo(String path)
                       throws IOException,
                              AS400SecurityException,
                              ObjectAlreadyExistsException
        Copies this file or directory to the specified file or directory on the system. If the destination file already exists, it is overwritten. If this IFSFile represents a directory:
        • The destination directory must be nonexistent, otherwise an exception is thrown.
        • The entire directory (including all of its contents and subdirectories) is copied.
        Parameters:
        path - The destination path to copy this IFSFile to.
        If the system is V5R2 or earlier: If the current object is a file (rather than a directory), the destination path must also specify a file (rather than a directory), otherwise the copy may fail.
        Returns:
        true if the copy succeeded (or at least one file of a source directory's contents was copied); false otherwise.
        Throws:
        IOException
        AS400SecurityException
        ObjectAlreadyExistsException
      • created

        public long created()
                     throws IOException
        Determines the time that the integrated file system object represented by this object was created.
        Returns:
        The time (measured in milliseconds since 01/01/1970 00:00:00 GMT) that the integrated file system object was created, or 0L if the object does not exist or is not accessible.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • createNewFile

        public boolean createNewFile()
                              throws IOException
        Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist. The check for the existence of the file and the creation of the file if it does not exist are a single operation that is atomic with respect to all other filesystem activities that might affect the file. If the file already exists, its data are left intact.
        Returns:
        true if the named file does not exist and was successfully created; false if the named file already exists.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException - If the user is not authorized to create the file.
      • enumerateFiles

        public Enumeration enumerateFiles(IFSFileFilter filter,
                                 String pattern)
                                   throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter. The returned Enumeration contains an IFSFile object for each file or directory in the list. The list is loaded incrementally, which will improve initial response time for large lists.
        Parameters:
        filter - A file object filter.
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An Enumeration of IFSFile objects which represent the contents of the directory that satisfy the filter and pattern. This Enumeration does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the filter or pattern does not match any files, then an empty Enumeration is returned. The IFSFile object passed to the filter object has cached file attribute information.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • enumerateFiles

        public Enumeration enumerateFiles(String pattern)
                                   throws IOException
        Lists the integrated file system objects in the directory represented by this object. The returned Enumeration contains an IFSFile object for each file or directory in the list. The list is loaded incrementally, which will improve initial response time for large lists.
        Parameters:
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An Enumeration of IFSFile objects which represent the contents of the directory. This Enumeration does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the pattern does not match any files, then an empty Enumeration is returned.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • enumerateFiles

        public Enumeration enumerateFiles(IFSFileFilter filter)
                                   throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter. The returned Enumeration contains an IFSFile object for each file or directory in the list. The list is loaded incrementally, which will improve initial response time for large lists.
        Parameters:
        filter - A file object filter.
        Returns:
        An Enumeration of IFSFile objects which represent the contents of the directory. This Enumeration does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the filter does not match any files, then an empty Enumeration is returned. The IFSFile object passed to the filter object has cached file attribute information.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • enumerateFiles

        public Enumeration enumerateFiles()
                                   throws IOException
        Lists the integrated file system objects in the directory represented by this object. The returned Enumeration contains an IFSFile object for each file or directory in the list. The list is loaded incrementally, which will improve initial response time for large lists.
        Returns:
        An Enumeration of IFSFile objects which represent the contents of the directory. This Enumeration does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the filter or pattern does not match any files, then an empty Enumeration is returned.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • equals

        public boolean equals(Object obj)
        Determines if two IFSFile objects are equal.
        Overrides:
        equals in class Object
        Parameters:
        obj - The object with which to compare.
        Returns:
        true if the path name and system names of the objects are equal; false otherwise.
      • getAbsolutePath

        public String getAbsolutePath()
        Returns the path name of the integrated file system object represented by this object. This is the full path starting at the root directory.
        Returns:
        The absolute path name of this integrated file system object.
      • getCanonicalPath

        public String getCanonicalPath()
        Returns the canonical pathname string of the integrated file system object represented by this object. This is the full path starting at the root directory. This typically involves removing redundant names such as "." and ".." from the pathname. Symbolic links are not resolved.
        Returns:
        The canonical path name of this integrated file system object.
      • getCCSID

        public int getCCSID()
                     throws IOException
        Returns the file's data CCSID. All files in the system's integrated file system are tagged with a CCSID. This method returns the value of that tag. If the file is non-existent or is a directory, returns -1.
        Returns:
        The file's CCSID.
        Throws:
        IOException - If an error occurs while communicating with the system.
      • getFileSystem

        public String getFileSystem()
        Returns the full path of the object.
        Returns:
        The full path of the object.
      • getName

        public String getName()
        Determines the name of the integrated file system object represented by this object.
        Returns:
        The name (without directory components).
      • getOwnerUID

        public long getOwnerUID()
                         throws IOException
        Returns the "user ID number" of the owner of the integrated file system file. If the file is non-existent or is a directory, returns -1.
        Returns:
        The file owner's ID number.
        Throws:
        IOException - If an error occurs while communicating with the system.
      • getOwnerId

        public int getOwnerId()
                       throws IOException
        Deprecated. Use getOwnerUID() instead.
        Returns the "user ID number" of the owner of the integrated file system file. If the file is non-existent or is a directory, returns -1.
        Returns:
        The file owner's ID number.
        Throws:
        IOException - If an error occurs while communicating with the system.
      • getParent

        public String getParent()
        Returns the path of the parent directory of the integrated file system object represented by this object. The parent directory is everything in the path name before the last occurrence of the separator character, or null if the separator character does not appear in the path name.
        Returns:
        The parent directory.
        See Also:
        getParentFile()
      • getParentFile

        public IFSFile getParentFile()
        Returns the parent directory of the current object. The parent is the path name before the last occurrence of the separator character. Null is returned if the separator character does not appear in the path, or if the current object is the file system root. If the system property is not yet set in the current object, then the system property will not be set in the returned object.
        Returns:
        an IFSJavaFile object representing the parent directory if one exists; null otherwise.
        See Also:
        getParent()
      • getPath

        public String getPath()
        Returns the path of the integrated file system object represented by this object.
        Returns:
        The integrated file system path name.
      • getPathPointedTo

        public String getPathPointedTo()
                                throws IOException,
                                       AS400SecurityException
        Returns the path of the integrated file system object that is directly pointed to by the symbolic link represented by this object; or null if the file is not a symbolic link or does not exist.

        This method is not supported for files in the following file systems:

        • QSYS.LIB
        • Independent ASP QSYS.LIB
        • QDLS
        • QOPT
        • QNTC
        Returns:
        The path directly pointed to by the symbolic link, or null if the IFS object is not a symbolic link or does not exist. Depending on how the symbolic link was defined, the path may be either relative or absolute.
        Throws:
        AS400SecurityException - If a security or authority error occurs.
        ErrorCompletingRequestException - If an error occurs before the request is completed.
        InterruptedException - If this thread is interrupted.
        IOException - If an error occurs while communicating with the system.
        ObjectDoesNotExistException - If the object does not exist on the system.
      • getSubtype

        public String getSubtype()
                          throws IOException,
                                 AS400SecurityException
        Returns the subtype of the integrated file system object represented by this object. Some possible values that might be returned include:
        CMNF, DKTF, DSPF, ICFF, LF, PF, PRTF, SAVF, TAPF.
        Note that many file system objects do not have a subtype: for example, .MBR objects, and any Root, QOpenSys or UDFS object.
        Returns a zero-length string if the object has no subtype.
        Returns:
        The subtype of the object.
        Throws:
        ExtendedIOException - If an error occurs while communicating with the system.
        AS400SecurityException - If a security or authority error occurs.
        IOException
      • isSourcePhysicalFile

        public boolean isSourcePhysicalFile()
                                     throws AS400Exception,
                                            AS400SecurityException,
                                            IOException
        Determines if the file is an IBM i "source physical file". Physical files reside under QSYS, and can be either source files (type *SRC) or data files (type *DATA). For further information, refer to the specification of the QDBRTVFD (Retrieve Database File Description) API.
        Returns:
        Whether the file is a source file.
        Throws:
        AS400Exception - If the system returns an error message.
        AS400SecurityException - If a security or authority error occurs.
        IOException - If an error occurs while communicating with the system.
        See Also:
        AS400File.TYPE_SOURCE, AS400File.TYPE_DATA
      • getSystem

        public AS400 getSystem()
        Returns the system that this object references.
        Returns:
        The system object.
      • getASP

        public int getASP()
                   throws IOException,
                          AS400SecurityException
        Return the auxiliary storage pool (ASP) that holds the object.
        Returns:
        Return the auxiliary storage pool (ASP) that holds the object. Possible values are:
        • 1: the system ASP (QASP01, also known as the system disk pool)
        • 2 to 32: user ASPs (QASP02 to QASP32)
        • 33 to 255: independent ASPs
        Throws:
        IOException
        AS400SecurityException
      • hashCode

        public int hashCode()
        Computes a hash code for this object.
        Overrides:
        hashCode in class Object
        Returns:
        A hash code value for this object.
      • isAbsolute

        public boolean isAbsolute()
        Determines if the path name of this integrated file system object is an absolute path name.
        Returns:
        true if the path name specification is absolute; false otherwise.
      • isSymbolicLink

        public boolean isSymbolicLink()
                               throws IOException,
                                      AS400SecurityException
        Determines if the integrated file system object represented by this object is a symbolic link.
        Note: Both isDirectory and isFile resolve symbolic links to their ultimate destination. For example, if this object represents a symbolic link on the system, that resolves to a file object, then isSymbolicLink() will return true, isFile() will return true, and isDirectory() will return false.
        Note: If the system is V5R2 or earlier, this method always returns false, regardless of whether the system object is a link or not.
        Returns:
        true if the specified file exists and is a symbolic link; false otherwise.
        If the system is V5R2 or earlier, this method always returns false.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        AS400SecurityException
      • isSorted

        public boolean isSorted()
                         throws IOException
        Returns the sorting behavior used when files are listed by any of the list() or listFiles() methods.
        Returns:
        true if lists of files are returned in sorted order; false otherwise.
        Throws:
        IOException
      • lastAccessed

        public long lastAccessed()
                          throws IOException
        Determines the time that the integrated file system object represented by this object was last accessed. With the use of the listFiles methods, attribute information is cached and will not be automatically refreshed from the system. This means the reported last accessed time may become inconsistent with the system.
        Returns:
        The time (measured in milliseconds since 01/01/1970 00:00:00 GMT) that the integrated file system object was last accessed, or 0L if the object does not exist or is not accessible.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • lastModified

        public long lastModified()
                          throws IOException
        Determines the time that the integrated file system object represented by this object was last modified. With the use of the listFiles methods, attribute information is cached and will not be automatically refreshed from the system. This means the reported last modified time may become inconsistent with the system.
        Returns:
        The time (measured in milliseconds since 01/01/1970 00:00:00 GMT) that the integrated file system object was last modified, or 0L if it does not exist or is not accessible.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • length

        public long length()
                    throws IOException
        Determines the length of the integrated file system object represented by this object. With the use of the listFiles methods, attribute information is cached and will not be automatically refreshed from the system. This means the reported length may become inconsistent with the system.
        Returns:
        The length, in bytes, of the integrated file system object, or 0L if it does not exist or is not accessible.
        Note: When used following listFiles or enumerateFiles methods (for symbolic link objects) this method will return the length of the symbolic link object as returned by the File Server. In order to retrieve the length of the target object, you must use clearCachedAttributes() followed by length().
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • list

        public String[] list()
                      throws IOException
        Lists the integrated file system objects in the directory represented by this object.
        Returns:
        An array of object names in the directory. This list does not include the current directory or the parent directory. If this object does not represent a directory, null is returned. If this object represents an empty directory, an empty string array is returned.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        listFiles(), setPatternMatching(int)
      • list

        public String[] list(IFSFileFilter filter)
                      throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter.
        Parameters:
        filter - A file object filter. If null, then no filtering is done.
        Returns:
        An array of object names in the directory that satisfy the filter. This list does not include the current directory or the parent directory. If this object does not represent a directory, null is returned. If this object represents an empty directory, or the filter does not match any files, an empty string array is returned. The IFSFile object passed to the filter object have cached file attribute information. Maintaining references to these IFSFile objects after the list operation increases the chances that their file attribute information will not be valid.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        listFiles(IFSFileFilter), setPatternMatching(int)
      • list

        public String[] list(IFSFileFilter filter,
                    String pattern)
                      throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter.
        Parameters:
        filter - A file object filter.
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An array of object names in the directory that satisfy the filter and pattern. This list does not include the current directory or the parent directory. If this object does not represent a directory, null is returned. If this object represents an empty directory, or the filter or pattern does not match any files, an empty string array is returned. The IFSFile object passed to the filter object have cached file attribute information. Maintaining references to these IFSFile objects after the list operation increases the chances that their file attribute information will not be valid.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        listFiles(IFSFileFilter,String), setPatternMatching(int)
      • list

        public String[] list(String pattern)
                      throws IOException
        Lists the integrated file system objects in the directory represented by this object that match pattern.
        Parameters:
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An array of object names in the directory that match the pattern. This list does not include the current directory or the parent directory. If this object does not represent a directory, null is returned. If this object represents an empty directory, or the pattern does not match any files, an empty string array is returned.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        listFiles(String), setPatternMatching(int)
      • listFiles

        public IFSFile[] listFiles()
                            throws IOException
        Lists the integrated file system objects in the directory represented by this object. With the use of this method, attribute information is cached and will not be automatically refreshed from the system. This means that retrieving attribute information for files returned in the list is much faster than using the list method, but attribute information may become inconsistent with the system.

        When the IFSFile object represents the root of the QSYS file system, this method may return a partial list of the contents of the directory.

        Returns:
        An array of objects in the directory. This list does not include the current directory or the parent directory. If this object does not represent a directory, or this object represents an empty directory, an empty object array is returned.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        setPatternMatching(int)
      • listFiles

        public IFSFile[] listFiles(IFSFileFilter filter)
                            throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter. With the use of this method, attribute information is cached and will not be automatically refreshed from the system. This means that retrieving attribute information for files returned in the list is much faster than using the list method, but attribute information may become inconsistent with the system.

        When the IFSFile object represents the root of the QSYS file system, this method may return a partial list of the contents of the directory.

        Parameters:
        filter - A file object filter.
        Returns:
        An array of objects in the directory. This list does not include the current directory or the parent directory. If this object does not represent a directory, or this object represents an empty directory, an empty object array is returned.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        setPatternMatching(int)
      • listFiles

        public IFSFile[] listFiles(IFSFileFilter filter,
                          String pattern)
                            throws IOException
        Lists the integrated file system objects in the directory represented by this object that satisfy filter. With the use of this method, attribute information is cached and will not be automatically refreshed from the system. This means that retrieving attribute information for files returned in the list is much faster than using the list method, but attribute information may become inconsistent with the system.

        When pattern is "*" and the IFSFile object represents the root of the QSYS file system, this method may return a partial list of the contents of the directory.

        Parameters:
        filter - A file object filter.
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An array of object names in the directory that satisfy the filter and pattern. This list does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the filter or pattern does not match any files, an empty object array is returned. The IFSFile object passed to the filter object has cached file attribute information. Maintaining references to these IFSFile objects after the list operation increases the chances that their file attribute information will not be valid.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        setPatternMatching(int)
      • listFiles

        public IFSFile[] listFiles(String pattern)
                            throws IOException
        Lists the integrated file system objects in the directory represented by this object that match pattern. With the use of this method, attribute information is cached and will not be automatically refreshed from the system. This means that retrieving attribute information for files returned in the list is much faster than using the list method, but attribute information may become inconsistent with the system.

        When pattern is "*" and the IFSFile object represents the root of the QSYS file system, this method may return a partial list of the contents of the directory.

        Parameters:
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (*) and question marks (?).
        Returns:
        An array of object names in the directory that match the pattern. This list does not include the current directory or the parent directory. If this object does not represent a directory, this object represents an empty directory, or the pattern does not match any files, an empty object array is returned.
        Note: Due to a limitation in the File Server, at most 65,535 files will be listed.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or the directory is not accessible.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
        See Also:
        setPatternMatching(int)
      • removeFileListener

        public void removeFileListener(FileListener listener)
        Removes a file listener so that it no longer receives file events from this IFSFile.
        Parameters:
        listener - The file listener.
      • removePropertyChangeListener

        public void removePropertyChangeListener(PropertyChangeListener listener)
        Removes a property change listener.
        Parameters:
        listener - The property change listener to remove.
      • removeVetoableChangeListener

        public void removeVetoableChangeListener(VetoableChangeListener listener)
        Removes a vetoable change listener.
        Parameters:
        listener - The vetoable change listener to remove.
      • setCCSID

        public boolean setCCSID(int ccsid)
                         throws IOException
        Sets the file's data CCSID.
        Parameters:
        ccsid - The file data CCSID. Note that the data in the file is not changed; only the CCSID "tag" on the file is changed.
        Returns:
        true if successful; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system, or if the file doesn't exist or is a directory.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • setHidden

        public boolean setHidden(boolean attribute)
                          throws IOException
        Changes the hidden attribute of the integrated file system object represented by this object.
        Parameters:
        attribute - True to set the hidden attribute of the file. False to turn off the hidden attribute.
        Returns:
        true if successful; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • setLastModified

        public boolean setLastModified(long time)
                                throws IOException,
                                       PropertyVetoException
        Changes the last modified time of the integrated file system object represented by this object to time.
        Parameters:
        time - The desired last modification time (measured in milliseconds since January 1, 1970 00:00:00 GMT), or 0 to leave the last modification time unchanged, or -1 to set the last modification time to the current system time.
        Returns:
        true if successful; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        PropertyVetoException - If the change is vetoed.
        IOException
      • setLength

        public boolean setLength(int length)
                          throws IOException
        Sets the length of the integrated file system object represented by this object. The file can be made larger or smaller. If the file is made larger, the contents of the new bytes of the file are undetermined.
        Parameters:
        length - The new length, in bytes.
        Returns:
        true if successful; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • setReadOnly

        public boolean setReadOnly(boolean attribute)
                            throws IOException
        Changes the read only attribute of the integrated file system object represented by this object.
        Parameters:
        attribute - True to set the read only attribute of the file such that the file cannot be changed. False to set the read only attributes such that the file can be changed.
        Returns:
        true if successful; false otherwise.
        Throws:
        ConnectionDroppedException - If the connection is dropped unexpectedly.
        ExtendedIOException - If an error occurs while communicating with the system.
        InterruptedIOException - If this thread is interrupted.
        ServerStartupException - If the host server cannot be started.
        UnknownHostException - If the system cannot be located.
        IOException
      • setSorted

        public void setSorted(boolean sort)
                       throws IOException,
                              AS400SecurityException
        Sets the sorting behavior used when files are listed by any of the list() or listFiles() methods. The default is false (unsorted).
        Parameters:
        sort - If true: Lists of files are returned in sorted order. If false: Lists of files are returned in whatever order the file system provides.
        Throws:
        IOException - If an error occurs while communicating with the system.
        AS400SecurityException - If a security or authority error occurs.
      • setSystem

        public void setSystem(AS400 system)
                       throws PropertyVetoException
        Sets the system. The system cannot be changed once a connection is made to the system.
        Parameters:
        system - The system object.
        Throws:
        PropertyVetoException - If the change is vetoed.
      • toString

        public String toString()
        Generates a String representation of this object.
        Overrides:
        toString in class Object
        Returns:
        The path name of the integrated file system object represented by this object.