com.ibm.as400.access

Class IFSJavaFile

  • All Implemented Interfaces:
    Serializable, Comparable<File>


    public class IFSJavaFile
    extends File
    implements Serializable
    Represents an object in the IBM i integrated file system.
    IFSJavaFile extends the java.io.File class and allows programs to be written for the java.io.File interface and still access the IBM i integrated file system. IFSFile should be considered as an alternate to java.io.File class.

    When should IFSJavaFile be used?

    • IFSJavaFile should be used when a portable interface, compatible with java.io.File, is needed. For example, you have written code that accesses the native file system. Now you want to move the design to a networked file system. More particularly, you need to move the code to the IBM i integrated file system. When a program is being ported and needs to use the IBM i integrated file system, IFSJavaFile is a good choice. IFSJavaFile also provides SecurityManager features defined in java.io.File.

    • If you need to take full advantage of the IBM i integrated file system, IFSFile is more useful. IFSFile is written to handle more of the specific IBM i integrated file system details.

    • java.io.File can be used to access the IBM i file system if you use a product like IBM i Access for Windows to map a local drive to the IBM i integrated file system.

    Notes:

    1. IFSJavaFile is designed to be used with IFSFileInputStream and IFSFileOutputStream. It does not support java.io.FileInputStream and java.io.FileOutputStream.
    2. IFSJavaFile cannot override createTempFile because java.io.File defines createTempFile as a static method.
    3. IFSJavaFile cannot override deleteOnExit because the Java Virtual Machine does nothing to indicate when it is preparing to exit.
    4. IFSJavaFile is designed to look more like java.io.File than IFSFile. It is designed to enable a plug-in fit for previously written java.io.File code.
    5. IFSJavaFile always implements a SecurityManager using IBM i security. The SecurityManager provides authority checks. It throws security exceptions when illegal access attempts are made.

    The following example demonstrates the use of IFSJavaFile. It shows how a few lines of platform specific code enable the creation of a file on either the IBM i system or the local client.

         int location            = ON_THE_SERVER;  // on the IBM i system
         java.io.File file       = null;
         java.io.OutputStream os = null;
    
    if (location == ON_THE_SERVER) file = new IFSJavaFile(new AS400("enterprise"), path); // Work with the file on the system "enterprise". else file = new java.io.File(path); // Work with the file on the local file system.
    if (file.exists()) System.out.println("Length: " + file.length()); // Determine the file size. else System.out.println("File " + file.getName() + " not found");
    // Delete the file. This should be done before creating an output stream. if (file.delete() == false) System.err.println("Unable to delete file."); // Display the error message.
    if (location == ON_THE_SERVER) os = (OutputStream)new IFSFileOutputStream((IFSJavaFile)file); else os = new FileOutputStream(file);
    writeData(file, os); os.close();
    void writeData(java.io.File file, java.io.OutputStream os) throws IOException { // Determine the parent directory of the file. System.out.println("Directory: " + file.getParent());
    // Determine the name of the file. System.out.println("Name: " + file.getName());
    // Determine when the file was last modified. System.out.println("Date: " + new Date(file.lastModified()));
    System.out.println("Writing Data"); for (int i = 0; i < 256; i++) os.write((byte)i); }
    See Also:
    IFSFile, IFSFileInputStream, IFSFileOutputStream, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor and Description
      IFSJavaFile()
      Creates a default IFSJavaFile instance.
      IFSJavaFile(AS400 system, IFSJavaFile directory, String name)
      Creates a new IFSJavaFile instance for the specified system, from a parent abstract pathname and a child pathname string.
      IFSJavaFile(AS400 system, String path)
      Creates a new IFSJavaFile instance for the specified system, using a file pathname string.
      IFSJavaFile(AS400 system, String path, String name)
      Creates a new IFSJavaFile instance for the specified system, from a parent pathname string and a child pathname string.
      IFSJavaFile(IFSFile file)
      Creates a new IFSJavaFile instance from an IFSFile object.
      IFSJavaFile(IFSJavaFile directory, String name)
      Creates a new IFSJavaFile instance from a parent abstract pathname and a child pathname string.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      boolean canExecute()
      Tests whether the application can execute the file denoted by this abstract pathname.
      boolean canRead()
      Indicates if the program can read from the file denoted by this abstract pathname.
      boolean canWrite()
      Indicates if the program can write to the file denoted by this abstract pathname.
      int compareTo(File file)
      Compares the path of IFSJavaFile with a File's path.
      int compareTo(IFSFile file)
      Compares the path of IFSJavaFile with a IFSFile's path.
      int compareTo(IFSJavaFile file)
      Compares the paths of two IFSJavaFiles.
      boolean createNewFile()
      Atomically create a new, empty file.
      boolean delete()
      Deletes the IFSJavaFile.
      boolean equals(Object obj)
      Compares this IFSJavaFile against the specified object.
      boolean exists()
      Indicates if the IFSJavaFile exists.
      File getAbsoluteFile()
      Returns An IFSJavaFile object based on the absolute path name of the current object.
      String getAbsolutePath()
      Returns the absolute path name of the IFSJavaFile.
      File getCanonicalFile()
      Returns An IFSJavaFile object based on the canonical path name of the current object.
      String getCanonicalPath()
      Returns the path name in canonical form of IFSJavaFile path.
      long getFreeSpace()
      Returns the number of unallocated bytes in the partition named by this abstract path name.
      String getName()
      Returns the name of the IFSJavaFile.
      String getParent()
      Returns the parent directory of the IFSJavaFile.
      File getParentFile()
      Returns an IFSJavaFile object that represents the parent of the current object.
      String getPath()
      Returns the path name of the IFSJavaFile.
      int getPatternMatching()
      Returns the pattern-matching behavior used when files are listed by any of the list() or listFiles() methods.
      AS400 getSystem()
      Returns the system that this object references.
      long getTotalSpace()
      Returns the size of the partition named by this abstract pathname.
      long getUsableSpace()
      Returns the number of bytes available to this virtual machine on the partition named by this abstract pathname.
      int hashCode()
      Computes a hashcode for this object.
      boolean isAbsolute()
      Indicates if the path name of this IFSJavaFile is an absolute path name.
      boolean isDirectory()
      Indicates if the IFSJavaFile is a directory.
      boolean isFile()
      Indicates if the IFSJavaFile is a "normal" file.
      boolean isHidden()
      Indicates if the IFSJavaFile is hidden.
      long lastModified()
      Indicates the time that the IFSJavaFile was last modified.
      long length()
      Indicates the length of this IFSJavaFile.
      String[] list()
      Lists the files in this IFSJavaFile directory.
      String[] list(FilenameFilter filter)
      Lists the files in this IFSJavaFile directory that satisfy filter.
      String[] list(IFSFileFilter filter)
      Lists the files in the IFSJavaFile directory that satisfy file name filter.
      String[] list(IFSFileFilter filter, String pattern)
      Lists the files in this IFSJavaFile directory that satisfy filter and pattern.
      String[] list(String pattern)
      Lists the files in this IFSJavaFile directory that match pattern.
      File[] listFiles()
      Lists the files in this IFSJavaFile directory.
      File[] listFiles(FileFilter filter)
      Lists the files in this IFSJavaFile directory that satisfy filter.
      File[] listFiles(FilenameFilter filter)
      Lists the files in this IFSJavaFile directory that satisfy filter.
      File[] listFiles(IFSFileFilter filter)
      Lists the files in the IFSJavaFile directory that satisfy file name filter.
      File[] listFiles(IFSFileFilter filter, String pattern)
      Lists the files in this IFSJavaFile directory that satisfy filter and pattern.
      File[] listFiles(String pattern)
      Lists the files in this IFSJavaFile directory that match pattern.
      static File[] listRoots()
      Lists the file system roots for the integrated file system of the IBM i system.
      boolean mkdir()
      Creates a directory whose path name is specified by this IFSJavaFile.
      boolean mkdirs()
      Creates a directory whose path name is specified by this IFSJavaFile, including any necessary parent directories.
      boolean renameTo(File dest)
      Renames the IFSJavaFile to have the path name of dest.
      boolean renameTo(IFSJavaFile dest)
      Renames the IFSJavaFile to have the path name of dest.
      boolean setExecutable(boolean executable)
      A convenience method to set the owner's execute permission for this abstract pathname.
      boolean setExecutable(boolean executable, boolean ownerOnly)
      Sets the owner's or everybody's execute permission for this abstract pathname.
      boolean setLastModified(long time)
      Sets the last modified time of the file named by this IFSJavaFile object.
      boolean setLength(int length)
      Sets the length of the file named by this IFSJavaFile object.
      boolean setPath(String path)
      Sets the path for this IFSJavaFile.
      void setPatternMatching(int patternMatching)
      Sets the pattern-matching behavior used when files are listed by any of the list() or listFiles() methods.
      boolean setReadable(boolean readable)
      A convenience method to set the owner's read permission for this abstract pathname.
      boolean setReadable(boolean readable, boolean ownerOnly)
      Sets the owner's or everybody's read permission for this abstract pathname.
      boolean setReadOnly()
      Marks the file named by this IFSJavaFile object so that only read operations are allowed.
      boolean setSystem(AS400 system)
      Sets the system.
      boolean setWritable(boolean writable)
      A convenience method to set the owner's write permission for this abstract pathname.
      boolean setWritable(boolean writable, boolean ownerOnly)
      Sets the owner's or everybody's write permission for this abstract pathname.
      String toString()
      Returns a string representation of this object.
      URL toURL()
      Converts the abstract path name into a file: URL.
    • Constructor Detail

      • IFSJavaFile

        public IFSJavaFile()
        Creates a default IFSJavaFile instance.
      • IFSJavaFile

        public IFSJavaFile(AS400 system,
                   String path)
        Creates a new IFSJavaFile instance for the specified system, using a file pathname string.
        Parameters:
        system - The system that contains the IFSJavaFile.
        path - The file path name where the IFSJavaFile is or will be stored.
      • IFSJavaFile

        public IFSJavaFile(AS400 system,
                   String path,
                   String name)
        Creates a new IFSJavaFile instance for the specified system, from a parent pathname string and a child pathname string.
        Parameters:
        system - The system that contains the IFSJavaFile.
        path - The file path name where the IFSJavaFile is or will be stored.
        name - The name of the IFSJavaFile object.
      • IFSJavaFile

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

        The directory argument cannot be null. The constructed IFSJavaFile 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 IFSJavaFile is or will be stored.
        name - The name of the IFSJavaFile object.
      • IFSJavaFile

        public IFSJavaFile(AS400 system,
                   IFSJavaFile directory,
                   String name)
        Creates a new IFSJavaFile instance for the specified system, from a parent abstract pathname and a child pathname string.
        Parameters:
        system - The system that contains the IFSJavaFile.
        directory - The directory where the IFSJavaFile is or will be stored.
        name - The name of the IFSJavaFile object.
      • IFSJavaFile

        public IFSJavaFile(IFSFile file)
        Creates a new IFSJavaFile instance from an IFSFile object.
        Parameters:
        file - An IFSFile object.

    • Method Detail

      • canExecute

        public boolean canExecute()
                           throws SecurityException
        Tests whether the application can execute the file denoted by this abstract pathname. 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.
        Overrides:
        canExecute in class File
        Returns:
        true if and only if the abstract pathname exists and the application is allowed to execute the file. For consistency with the behavior of java.io.File on IBM i JVM's: If a security error occurs simply because the user profile isn't allowed to access the file, the error is traced and false is returned.
        Throws:
        SecurityException - If an unanticipated security error occurs.
      • canRead

        public boolean canRead()
                        throws SecurityException
        Indicates if the program can read from the file denoted by this abstract pathname.
        Overrides:
        canRead in class File
        Returns:
        true if and only if the abstract pathname exists and the application is allowed to read the file. For consistency with the behavior of java.io.File on IBM i JVM's: If a security error occurs simply because the user profile isn't allowed to access the file, the error is traced and false is returned.
        Throws:
        SecurityException - If an unanticipated security error occurs.
      • canWrite

        public boolean canWrite()
                         throws SecurityException
        Indicates if the program can write to the file denoted by this abstract pathname.
        Overrides:
        canWrite in class File
        Returns:
        true if and only if the abstract pathname exists and the application is allowed to write the file. For consistency with the behavior of java.io.File on IBM i JVM's: If a security error occurs simply because the user profile isn't allowed to access the file, the error is traced and false is returned.
        Throws:
        SecurityException - If an unanticipated security error occurs.
      • compareTo

        public int compareTo(IFSJavaFile file)
        Compares the paths of two IFSJavaFiles.

        The following examples demonstrate the use of this method:

        In this example, returnCode would be less than 0 because the path of file is less than the path of file2.

          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), path);
          IFSJavaFile file2 = new IFSJavaFile(new AS400("enterprise"), path + "\\extra");
         
        int returnCode = file.compareTo(file2);

        In this example, returnCode would be greater than 0 because the path of file is greater than the path of file2.

          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), path + "\\extra");
          IFSJavaFile file2 = new IFSJavaFile(new AS400("enterprise"), path);
         
        int returnCode = file.compareTo(file2);

        In this example, returnCode would be less than 0 because the path of file is less than the path of file2.

          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), "\\QSYS.LIB\\herlib");
          IFSJavaFile file2 = new IFSJavaFile(new AS400("enterprise"), "\\QSYS.LIB\\hislib");
         
        int returnCode = file.compareTo(file2);

        Note:
        The comparison is case sensitive.

        Parameters:
        file - The IFSJavaFile to be compared.
        Returns:
        0 if this IFSJavaFile path equals file's path; a value less than 0 if this IFSJavaFile path is less than the file's path; and a value greater than 0 if this IFSJavaFile path is greater than the file's path.
        Since:
        JDK1.2
      • compareTo

        public int compareTo(File file)
        Compares the path of IFSJavaFile with a File's path.

        Note:
        The comparison is case sensitive.

        Specified by:
        compareTo in interface Comparable<File>
        Overrides:
        compareTo in class File
        Parameters:
        file - The File to be compared.
        Returns:
        0 if this IFSJavaFile path equals the argument's path; a value less than 0 if this IFSJavaFile path is less than the argument's path; and a value greater than 0 if this IFSJavaFile path is greater than the argument's path.
        Since:
        JDK1.2
      • compareTo

        public int compareTo(IFSFile file)
        Compares the path of IFSJavaFile with a IFSFile's path.

        Note:
        The comparison is case sensitive.

        Parameters:
        file - The IFSFile to be compared.
        Returns:
        0 if this IFSJavaFile path equals the argument's path; a value less than 0 if this IFSJavaFile path is less than the argument's path; and a value greater than 0 if this IFSJavaFile path is greater than the argument's path.
        Since:
        JDK1.2
      • createNewFile

        public boolean createNewFile()
                              throws IOException
        Atomically create a new, empty file. The file is created if and only if the file does not yet exist. The check for existence and the file creation is a single atomic operation.
        Overrides:
        createNewFile in class File
        Returns:
        true if the file is created, false otherwise.
        Throws:
        IOException - If an I/O error occurs while communicating with the IBM i system.
      • delete

        public boolean delete()
                       throws SecurityException
        Deletes the IFSJavaFile. If the target is a directory, it must be empty for deletion to succeed.
        Overrides:
        delete in class File
        Returns:
        true if the file is successfully deleted; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • equals

        public boolean equals(Object obj)
        Compares this IFSJavaFile against the specified object. Returns true if and only if the argument is not null and is an IFSJavaFile object whose path name is equal to the path name of this IFSJavaFile, and system names of the objects are equal.
        Overrides:
        equals in class File
        Parameters:
        obj - The object to compare with.
        Returns:
        true if the objects are the same; false otherwise.
      • exists

        public boolean exists()
                       throws SecurityException
        Indicates if the IFSJavaFile exists.
        Overrides:
        exists in class File
        Returns:
        true if the file specified by this object exists; false otherwise.
        Throws:
        SecurityException - If the user is denied read access to the file.
        SecurityException - If the user is denied access to the file.
      • getAbsoluteFile

        public File getAbsoluteFile()
        Returns An IFSJavaFile object based on the absolute path name of the current object. If the system property is set, it is copied to the returned object.
        Overrides:
        getAbsoluteFile in class File
        Returns:
        an IFSJavaFile object based on the absolute path name of the current object.
        See Also:
        getAbsolutePath()
      • getAbsolutePath

        public String getAbsolutePath()
        Returns the absolute path name of the IFSJavaFile. This is the full path starting at the root directory.
        Overrides:
        getAbsolutePath in class File
        Returns:
        The absolute path name for this IFSJavaFile. All paths are absolute paths in the integrated file system.
        See Also:
        isAbsolute()
      • getCanonicalFile

        public File getCanonicalFile()
                              throws IOException
        Returns An IFSJavaFile object based on the canonical path name of the current object. If the system property is set, it is copied to the returned object.
        Overrides:
        getCanonicalFile in class File
        Returns:
        an IFSJavaFile object based on the canonical path name of the current object.
        Throws:
        IOException - If an I/O error occurs while communicating with the IBM i system.
        See Also:
        getCanonicalPath()
      • getCanonicalPath

        public String getCanonicalPath()
                                throws IOException
        Returns the path name in canonical form of IFSJavaFile path. This is the full path starting at the root directory.
        Overrides:
        getCanonicalPath in class File
        Returns:
        The canonical path name for this IFSJavaFile.
        Throws:
        IOException - If an I/O error occurs while communicating with the IBM i system.
      • getFreeSpace

        public long getFreeSpace()
                          throws SecurityException
        Returns the number of unallocated bytes in the partition named by this abstract path name.

        The returned number of unallocated bytes is a hint, but not a guarantee, that it is possible to use most or any of these bytes. The number of unallocated bytes is most likely to be accurate immediately after this call. It is likely to be made inaccurate by any external I/O operations including those made on the system outside of this virtual machine. This method makes no guarantee that write operations to this file system will succeed.

        Overrides:
        getFreeSpace in class File
        Returns:
        The number of unallocated bytes on the partition; or 0L if the abstract pathname does not name a partition. This value will be less than or equal to the total file system size returned by getTotalSpace().
        Throws:
        SecurityException - If the user is denied access to the file.
      • getTotalSpace

        public long getTotalSpace()
                           throws SecurityException
        Returns the size of the partition named by this abstract pathname.
        Overrides:
        getTotalSpace in class File
        Returns:
        The size, in bytes, of the partition; or 0L if this abstract pathname does not name a partition.
        Throws:
        SecurityException - If the user is denied access to the file.
      • getUsableSpace

        public long getUsableSpace()
                            throws SecurityException
        Returns the number of bytes available to this virtual machine on the partition named by this abstract pathname. When possible, this method checks for write permissions and other operating system restrictions and will therefore usually provide a more accurate estimate of how much new data can actually be written than getFreeSpace().

        The returned number of available bytes is a hint, but not a guarantee, that it is possible to use most or any of these bytes. The number of unallocated bytes is most likely to be accurate immediately after this call. It is likely to be made inaccurate by any external I/O operations including those made on the system outside of this virtual machine. This method makes no guarantee that write operations to this file system will succeed.

        Note: If the user profile has a "maximum storage allowed" setting of *NOMAX, then getUsableSpace() returns the same value as getFreeSpace().

        Overrides:
        getUsableSpace in class File
        Returns:
        The number of available bytes on the partition; or 0L if the abstract pathname does not name a partition.
        Throws:
        SecurityException - If the user is denied access to the file.
      • getName

        public String getName()
        Returns the name of the IFSJavaFile. The name is everything in the path name after the last occurrence of the separator character.

        The following example demonstrates the use of this method:

        In this example, fileName would equal "file.dat".

          String path = "\\path\\file.dat";
          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), path);
         
        String fileName = file.getName();
        Overrides:
        getName in class File
        Returns:
        The name (without any directory components) of this IFSJavaFile.
      • getParent

        public String getParent()
        Returns the parent directory of the IFSJavaFile. 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.

        The following example demonstrates the use of this method:

        In this example, parentPath would equal "\test".

          String path = "\\test\\path";
          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), path);
         
        String parentPath = file.getParent();
        Overrides:
        getParent in class File
        Returns:
        The parent directory if one exists; null otherwise.
        See Also:
        getParentFile()
      • getParentFile

        public File getParentFile()
        Returns an IFSJavaFile object that represents the parent 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 the current object is the file system root. If the system property is set, it is also copied to the returned object.
        Overrides:
        getParentFile in class File
        Returns:
        an IFSJavaFile object representing the parent directory if one exists; null otherwise.
        See Also:
        getParent()
      • getPath

        public String getPath()
        Returns the path name of the IFSJavaFile.

        The following example demonstrates the use of this method:

        In this example, thePath would equal "\test\path" the same value as path.

          String path = "\\test\\path";
          IFSJavaFile file  = new IFSJavaFile(new AS400("enterprise"), path);
         
        String thePath = file.getPath();
        Overrides:
        getPath in class File
        Returns:
        The file path name.
      • getSystem

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

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

        public boolean isAbsolute()
        Indicates if the path name of this IFSJavaFile is an absolute path name.
        Overrides:
        isAbsolute in class File
        Returns:
        true if the path name specification is absolute; false otherwise.
      • isDirectory

        public boolean isDirectory()
                            throws SecurityException
        Indicates if the IFSJavaFile is a directory.
        Overrides:
        isDirectory in class File
        Returns:
        true if the IFSJavaFile exists and is a directory; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • isFile

        public boolean isFile()
                       throws SecurityException
        Indicates if the IFSJavaFile is a "normal" file.
        A file is "normal" if it is not a directory or a container of other objects.
        Overrides:
        isFile in class File
        Returns:
        true if the specified file exists and is a "normal" file; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • isHidden

        public boolean isHidden()
                         throws SecurityException
        Indicates if the IFSJavaFile is hidden. On the IBM i system, a file is hidden if its hidden attribute is set.
        Overrides:
        isHidden in class File
        Returns:
        true if the file is hidden; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • lastModified

        public long lastModified()
                          throws SecurityException
        Indicates the time that the IFSJavaFile was last modified.
        Overrides:
        lastModified in class File
        Returns:
        The time (measured in milliseconds since 01/01/1970 00:00:00 GMT) that the IFSJavaFile was last modified, or 0 if it does not exist.
        Throws:
        SecurityException - If the user is denied access to the file.
      • length

        public long length()
                    throws SecurityException
        Indicates the length of this IFSJavaFile.
        Overrides:
        length in class File
        Returns:
        The length, in bytes, of the IFSJavaFile, or 0((IFSJavaFile) if it does not exist.
        Throws:
        SecurityException - If the user is denied access to the file.
      • list

        public String[] list()
                      throws SecurityException
        Lists the files in this IFSJavaFile directory.
        Overrides:
        list in class File
        Returns:
        An array of object names in the directory. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, an empty string array is returned.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        listFiles()
      • list

        public String[] list(FilenameFilter filter)
                      throws SecurityException
        Lists the files in this IFSJavaFile directory that satisfy filter.
        Overrides:
        list in class File
        Parameters:
        filter - The file name filter.
        Returns:
        An array of object names in the directory that satisfy the file name filter. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter does not match any files, an empty string array is returned. The IFSJavaFile object passed to the file name filter object have cached file attribute information. Maintaining references to these IFSJavaFile objects after the list operation increases the chances that their file attribute information will not be valid.

        The following example demonstrates the use of this method:

          class AcceptClass implements java.io.FilenameFilter
          {
            public boolean accept(java.io.File dir, java.lang.String name)
            {
              if (name.startsWith("IFS"))
                return true;
              return false;
            }
          }
         
        IFSJavaFile file = new IFSJavaFile(new AS400("enterprise"), path); AcceptClass ac = new AcceptClass(); file.list(ac);
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        listFiles(FilenameFilter)
      • list

        public String[] list(IFSFileFilter filter)
                      throws SecurityException
        Lists the files in the IFSJavaFile directory that satisfy file name filter.
        Parameters:
        filter - The file name filter.
        Returns:
        An array of object names in the directory that satisfy the file name filter. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter does not match any files, an empty string array is returned. The IFSFile object passed to the file name 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.

        The following example demonstrates the use of this method:

          class AcceptClass implements IFSFileFilter
          {
            public boolean accept(IFSFile file)
            {
              if (file.getName().startsWith("IFS"))
                return true;
              return false;
            }
          }
         
        IFSJavaFile file = new IFSJavaFile(new AS400("enterprise"), path); AcceptClass ac = new AcceptClass(); file.list(ac);
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        listFiles(IFSFileFilter)
      • list

        public String[] list(IFSFileFilter filter,
                    String pattern)
                      throws SecurityException
        Lists the files in this IFSJavaFile directory that satisfy filter and pattern.

        Note:
        If the file does not match pattern, it will not be processed by filter.

        Parameters:
        filter - The file name filter.
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (* - matches multiple characters) and question marks (? - matches one character). Pattern must not be null.
        Returns:
        An array of object names in the directory that satisfy the file name filter and pattern. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter or pattern does not match any files, an empty string array is returned. The IFSFile object passed to the file name 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.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        listFiles(IFSFileFilter,String)
      • list

        public String[] list(String pattern)
                      throws SecurityException
        Lists the files in this IFSJavaFile directory that match pattern.
        Parameters:
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (* - matches multiple characters) and question marks (? - matches one character).
        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 IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the pattern does not match any files, an empty string array is returned.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        listFiles(String)
      • listFiles

        public File[] listFiles()
                         throws SecurityException
        Lists the files in this IFSJavaFile directory. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.
        Overrides:
        listFiles in class File
        Returns:
        An array of objects in the directory. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, an empty object array is returned.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        list()
      • listFiles

        public File[] listFiles(FilenameFilter filter)
                         throws SecurityException
        Lists the files in this IFSJavaFile directory that satisfy filter. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.
        Overrides:
        listFiles in class File
        Parameters:
        filter - The file name filter.
        Returns:
        An array of objects in the directory that satisfy the file name filter. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter does not match any files, an empty object array is returned. The IFSJavaFile object passed to the file name filter object has cached file attribute information. Maintaining references to these IFSJavaFile objects after the list operation increases the chances that their file attribute information will not be valid.

        The following example demonstrates the use of this method:

          class AcceptClass implements java.io.FilenameFilter
          {
            public boolean accept(java.io.File dir, java.lang.String name)
            {
              if (name.startsWith("IFS"))
                return true;
              return false;
            }
          }
         
        IFSJavaFile file = new IFSJavaFile(new AS400("enterprise"), path); AcceptClass ac = new AcceptClass(); file.listFiles(ac);
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        list(FilenameFilter)
      • listFiles

        public File[] listFiles(FileFilter filter)
                         throws SecurityException
        Lists the files in this IFSJavaFile directory that satisfy filter. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.
        Overrides:
        listFiles in class File
        Parameters:
        filter - The file filter.
        Returns:
        An array of objects in the directory that satisfy the file filter. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file filter does not match any files, an empty object array is returned. The IFSJavaFile object passed to the file filter object has cached file attribute information. Maintaining references to these IFSJavaFile objects after the list operation increases the chances that their file attribute information will not be valid.

        The following example demonstrates the use of this method:

          class AcceptClass implements java.io.FileFilter
          {
            public boolean accept(java.io.File file)
            {
              if (file.getName().startsWith("IFS"))
                return true;
              return false;
            }
          }
         
        IFSJavaFile file = new IFSJavaFile(new AS400("enterprise"), path); AcceptClass ac = new AcceptClass(); file.listFiles(ac);
        Throws:
        SecurityException - If the user is denied access to the file.
      • listFiles

        public File[] listFiles(IFSFileFilter filter)
                         throws SecurityException
        Lists the files in the IFSJavaFile directory that satisfy file name filter. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.
        Parameters:
        filter - The file name filter.
        Returns:
        An array of objects in the directory that satisfy the file name filter. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter does not match any files, an empty object array is returned. The IFSFile object passed to the file name 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.

        The following example demonstrates the use of this method:

          class AcceptClass implements IFSFileFilter
          {
            public boolean accept(IFSFile file)
            {
              if (file.getName().startsWith("IFS"))
                return true;
              return false;
            }
          }
         
        IFSJavaFile file = new IFSJavaFile(new AS400("enterprise"), path); AcceptClass ac = new AcceptClass(); file.listFiles(ac);
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        list(IFSFileFilter)
      • listFiles

        public File[] listFiles(IFSFileFilter filter,
                       String pattern)
                         throws SecurityException
        Lists the files in this IFSJavaFile directory that satisfy filter and pattern. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.

        Note:
        If the file does not match pattern, it will not be processed by filter.

        Parameters:
        filter - The file name filter.
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (* - matches multiple characters) and question marks (? - matches one character). Pattern must not be null.
        Returns:
        An array of objects in the directory that satisfy the file name filter and pattern. This list does not include the current directory or the parent directory. If this IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the file name filter or pattern does not match any files, an empty object array is returned. The IFSFile object passed to the file name 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.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        list(IFSFileFilter,String)
      • listFiles

        public File[] listFiles(String pattern)
                         throws SecurityException
        Lists the files in this IFSJavaFile directory that match pattern. With the use of this function, attribute information is cached and will not be refreshed from the IBM i system. This means attribute information may become inconsistent with the IBM i system.
        Parameters:
        pattern - The pattern that all filenames must match. Acceptable characters are wildcards (* - matches multiple characters) and question marks (? - matches one character).
        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 IFSJavaFile is not a directory, null is returned. If this IFSJavaFile is an empty directory, or the pattern does not match any files, an empty string array is returned.
        Throws:
        SecurityException - If the user is denied access to the file.
        See Also:
        list(String)
      • listRoots

        public static File[] listRoots()
        Lists the file system roots for the integrated file system of the IBM i system. The IBM i integrated file system has only one root -- "/".
        Returns:
        An array of IFSJavaFile objects that represent the file system roots of the integrated file system of the IBM i system. Since the IBM i integrated file system has only one root, the returned array contains only one element.
      • mkdir

        public boolean mkdir()
                      throws SecurityException
        Creates a directory whose path name is specified by this IFSJavaFile.
        Overrides:
        mkdir in class File
        Returns:
        true if the directory could be created; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • mkdirs

        public boolean mkdirs()
                       throws SecurityException
        Creates a directory whose path name is specified by this IFSJavaFile, including any necessary parent directories.
        Overrides:
        mkdirs in class File
        Returns:
        true if the directory (or directories) could be created; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • renameTo

        public boolean renameTo(IFSJavaFile dest)
                         throws SecurityException
        Renames the IFSJavaFile to have the path name of dest. Wildcards are not permitted in this file name.
        Parameters:
        dest - The new filename.
        Returns:
        true if the renaming succeeds; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • renameTo

        public boolean renameTo(File dest)
                         throws SecurityException
        Renames the IFSJavaFile to have the path name of dest. Wildcards are not permitted in this file name.
        Overrides:
        renameTo in class File
        Parameters:
        dest - An object specifying the new filename. If this object is not an IFSJavaFile, the rename will fail.
        Returns:
        true if the renaming succeeds; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setLastModified

        public boolean setLastModified(long time)
                                throws SecurityException
        Sets the last modified time of the file named by this IFSJavaFile object.
        Overrides:
        setLastModified in class File
        Parameters:
        time - The new last modified time, measured in milliseconds since 00:00:00 GMT, January 1, 1970. If -1, sets the last modified time to the current system time.
        Returns:
        true if the time is set; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setLength

        public boolean setLength(int length)
                          throws SecurityException
        Sets the length of the file named by this IFSJavaFile 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:
        SecurityException - If the user is denied access to the file.
      • setPath

        public boolean setPath(String path)
        Sets the path for this IFSJavaFile.
        Parameters:
        path - The absolute file path.
        Returns:
        true if the path was set; false otherwise.
      • setPatternMatching

        public void setPatternMatching(int patternMatching)
                                throws IOException
        Sets the pattern-matching behavior used when files are listed by any of the list() or listFiles() methods. The default is PATTERN_POSIX.
        Parameters:
        patternMatching - Either PATTERN_POSIX, PATTERN_POSIX_ALL, or PATTERN_OS2
        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()
                            throws SecurityException
        Marks the file named by this IFSJavaFile object so that only read operations are allowed. On the IBM i system, a file is marked read only by setting the read only attribute of the file.
        Overrides:
        setReadOnly in class File
        Returns:
        true if the read only attribute is set; false otherwise.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setSystem

        public boolean setSystem(AS400 system)
        Sets the system.
        Parameters:
        system - The system object.
        Returns:
        true if the system was set; false otherwise.
      • setExecutable

        public boolean setExecutable(boolean executable)
                              throws SecurityException
        A convenience method to set the owner's execute permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.

        An invocation of this method of the form file.setExcutable(arg) behaves in exactly the same way as the invocation file.setExecutable(arg, true)

        Overrides:
        setExecutable in class File
        Parameters:
        executable - If true, sets the access permission to allow execute operations; if false, to disallow execute operations.
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setExecutable

        public boolean setExecutable(boolean executable,
                            boolean ownerOnly)
                              throws SecurityException
        Sets the owner's or everybody's execute permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.
        Overrides:
        setExecutable in class File
        Parameters:
        executable - If true, sets the access permission to allow execute operations; if false, to disallow execute operations.
        ownerOnly - If true, the execute permission applies only to the owner's execute permission; otherwise, it applies to everybody.
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setReadable

        public boolean setReadable(boolean readable)
                            throws SecurityException
        A convenience method to set the owner's read permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.

        An invocation of this method of the form file.setReadable(arg) behaves in exactly the same way as the invocation file.setReadable(arg, true)

        Overrides:
        setReadable in class File
        Parameters:
        readable - If true, sets the access permission to allow read operations; if false, to disallow read operations.
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setReadable

        public boolean setReadable(boolean readable,
                          boolean ownerOnly)
                            throws SecurityException
        Sets the owner's or everybody's read permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.
        Overrides:
        setReadable in class File
        Parameters:
        readable - If true, sets the access permission to allow read operations; if false, to disallow read operations.
        ownerOnly - If true, the read permission applies only to the owner's read permission; otherwise, it applies to everybody.
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setWritable

        public boolean setWritable(boolean writable)
                            throws SecurityException
        A convenience method to set the owner's write permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.

        An invocation of this method of the form file.setWritable(arg) behaves in exactly the same way as the invocation file.setWritable(arg, true)

        Overrides:
        setWritable in class File
        Parameters:
        writable - If true, sets the access permission to allow write operations; if false to disallow write operations
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • setWritable

        public boolean setWritable(boolean writable,
                          boolean ownerOnly)
                            throws SecurityException
        Sets the owner's or everybody's write permission for this abstract pathname. This method is supported for IBM i V5R1 and higher. For older releases, it simply returns false.
        Overrides:
        setWritable in class File
        Parameters:
        writable - If true, sets the access permission to allow write operations; if false, to disallow write operations.
        ownerOnly - If true, the write permission applies only to the owner's write permission; otherwise, it applies to everybody.
        Returns:
        true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
        Throws:
        SecurityException - If the user is denied access to the file.
      • toString

        public String toString()
        Returns a string representation of this object.
        Overrides:
        toString in class File
        Returns:
        A string giving the path name of this object.
      • toURL

        public URL toURL()
                  throws MalformedURLException
        Converts the abstract path name into a file: URL. The IBM i file/directory will be accessed and if it is a directory the resulting URL will end with the IBM i separator character (forward slash). The system name will be obtained from the AS400 object. If the path name or AS400 object has not been set, a NullPointerException will be thrown.
        Overrides:
        toURL in class File
        Returns:
        The URL form of the abstract path name of this object.
        Throws:
        MalformedURLException - If the URL cannot be formed.