com.ibm.as400.access
Class IFSJavaFile

java.lang.Object
  |
  +--java.io.File
        |
        +--com.ibm.as400.access.IFSJavaFile
All Implemented Interfaces:
java.lang.Comparable, java.io.Serializable

public class IFSJavaFile
extends java.io.File
implements java.io.Serializable

The IFSJavaFile class represents a file in the integrated file system of the iSeries server.
IFSJavaFile extends the java.io.File class and allows programs to be written for the java.io.File interface and still access the iSeries integrated file system. IFSFile should be considered as an alternate to java.io.File class.

When should IFSJavaFile be used?

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 iSeries 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 iSeries or the local client.

     int location            = ON_THE_AS400;
     java.io.File file       = null;
     java.io.OutputStream os = null;

if (location == ON_THE_AS400) 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_AS400) 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

Fields inherited from class java.io.File
pathSeparator, pathSeparatorChar, separator, separatorChar
 
Constructor Summary
IFSJavaFile()
          Creates a default IFSJavaFile instance.
IFSJavaFile(AS400 system, IFSJavaFile directory, java.lang.String name)
          Creates a new IFSJavaFile instance for the specified system, from a parent abstract pathname and a child pathname string.
IFSJavaFile(AS400 system, java.lang.String path)
          Creates a new IFSJavaFile instance for the specified system, using a file pathname string.
IFSJavaFile(AS400 system, java.lang.String path, java.lang.String name)
          Creates a new IFSJavaFile instance for the specified system, from a parent pathname string and a child pathname string.
IFSJavaFile(IFSJavaFile directory, java.lang.String name)
          Creates a new IFSJavaFile instance from a parent abstract pathname and a child pathname string.
 
Method Summary
 boolean canRead()
          Indicates if the program can read from the IFSJavaFile.
 boolean canWrite()
          Indicates if the program can write to the IFSJavaFile.
 int compareTo(java.io.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.
 int compareTo(java.lang.Object obj)
          Compares the path of IFSJavaFile with an Object's path.
 boolean createNewFile()
          Atomically create a new, empty file.
 boolean delete()
          Deletes the IFSJavaFile.
 boolean equals(java.lang.Object obj)
          Compares this IFSJavaFile against the specified object.
 boolean exists()
          Indicates if the IFSJavaFile exists.
 java.io.File getAbsoluteFile()
          Returns An IFSJavaFile object based on the absolute path name of the current object.
 java.lang.String getAbsolutePath()
          Returns the absolute path name of the IFSJavaFile.
 java.io.File getCanonicalFile()
          Returns An IFSJavaFile object based on the canonical path name of the current object.
 java.lang.String getCanonicalPath()
          Returns the path name in canonical form of IFSJavaFile path.
 java.lang.String getName()
          Returns the name of the IFSJavaFile.
 java.lang.String getParent()
          Returns the parent directory of the IFSJavaFile.
 java.io.File getParentFile()
          Returns an IFSJavaFile object that represents the parent of the current object.
 java.lang.String getPath()
          Returns the path name of the IFSJavaFile.
 AS400 getSystem()
          Returns the system that this object references.
 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.
A file is "normal" if it is not a directory or a container of other objects.
 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.
 java.lang.String[] list()
          Lists the files in this IFSJavaFile directory.
 java.lang.String[] list(java.io.FilenameFilter filter)
          Lists the files in this IFSJavaFile directory that satisfy filter.
 java.lang.String[] list(IFSFileFilter filter)
          Lists the files in the IFSJavaFile directory that satisfy file name filter.
 java.lang.String[] list(IFSFileFilter filter, java.lang.String pattern)
          Lists the files in this IFSJavaFile directory that satisfy filter and pattern.
 java.lang.String[] list(java.lang.String pattern)
          Lists the files in this IFSJavaFile directory that match pattern.
 java.io.File[] listFiles()
          Lists the files in this IFSJavaFile directory.
 java.io.File[] listFiles(java.io.FileFilter filter)
          Lists the files in this IFSJavaFile directory that satisfy filter.
 java.io.File[] listFiles(java.io.FilenameFilter filter)
          Lists the files in this IFSJavaFile directory that satisfy filter.
 java.io.File[] listFiles(IFSFileFilter filter)
          Lists the files in the IFSJavaFile directory that satisfy file name filter.
 java.io.File[] listFiles(IFSFileFilter filter, java.lang.String pattern)
          Lists the files in this IFSJavaFile directory that satisfy filter and pattern.
 java.io.File[] listFiles(java.lang.String pattern)
          Lists the files in this IFSJavaFile directory that match pattern.
static java.io.File[] listRoots()
          Lists the file system roots for the integrated file system of the iSeries server.
 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(java.io.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 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(java.lang.String path)
          Sets the path for this IFSJavaFile.
 boolean setReadOnly()
          Marks the file named by this IFSJavaFile object so that only read operations are allowed.
 boolean setSystem(AS400 system)
          Sets the system.
 java.lang.String toString()
          Returns a string representation of this object.
 java.net.URL toURL()
          Converts the abstract path name into a file: URL.
 
Methods inherited from class java.io.File
createTempFile, createTempFile, deleteOnExit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IFSJavaFile

public IFSJavaFile()
Creates a default IFSJavaFile instance.

IFSJavaFile

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

IFSJavaFile

public IFSJavaFile(AS400 system,
                   java.lang.String path,
                   java.lang.String name)
Creates a new IFSJavaFile instance for the specified system, from a parent pathname string and a child pathname string.
Parameters:
system - The AS400 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,
                   java.lang.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:

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,
                   java.lang.String name)
Creates a new IFSJavaFile instance for the specified system, from a parent abstract pathname and a child pathname string.
Parameters:
system - The AS400 that contains the IFSJavaFile.
directory - The directory where the IFSJavaFile is or will be stored.
name - The name of the IFSJavaFile object.
Method Detail

canRead

public boolean canRead()
Indicates if the program can read from the IFSJavaFile.
Overrides:
canRead in class java.io.File
Returns:
true if the object exists and is readable; false otherwise.

canWrite

public boolean canWrite()
Indicates if the program can write to the IFSJavaFile.
Overrides:
canWrite in class java.io.File
Returns:
true if the object exists and is writeable; false otherwise.

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(java.io.File file)
Compares the path of IFSJavaFile with a File's path.

Note:
The comparison is case sensitive.

Overrides:
compareTo in class java.io.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

compareTo

public int compareTo(java.lang.Object obj)
Compares the path of IFSJavaFile with an Object's path. If the other object is an IFSJavaFile, then this function behaves like compareTo(IFSJavaFile). If the other object is an IFSFile, then this function behaves like compareTo(IFSFile). If the other object is a java.io.File, then this function behaves like compareTo(File). Otherwise, it throws a ClassCastException, since IFSJavaFile is comparable only to IFSJavaFile, IFSFile, and File.

Note:
The comparison is case sensitive.

Overrides:
compareTo in class java.io.File
Parameters:
obj - The Object 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 java.io.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 java.io.File
Returns:
true if the file is created, false otherwise.
Throws:
java.io.IOException - If an I/O error occurs while communicating with the iSeries server.

delete

public boolean delete()
Deletes the IFSJavaFile. If the target is a directory, it must be empty for deletion to succeed.
Overrides:
delete in class java.io.File
Returns:
true if the file is successfully deleted; false otherwise.

equals

public boolean equals(java.lang.Object obj)
Compares this IFSJavaFile against the specified object. Returns true if and only if the argument is not null and is a 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 java.io.File
Parameters:
obj - The object to compare with.
Returns:
true if the objects are the same; false otherwise.

exists

public boolean exists()
Indicates if the IFSJavaFile exists.
Overrides:
exists in class java.io.File
Returns:
true if the file specified by this object exists; false otherwise.

getAbsoluteFile

public java.io.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 java.io.File
Returns:
an IFSJavaFile object based on the absolute path name of the current object.
See Also:
getAbsolutePath()

getAbsolutePath

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

getCanonicalFile

public java.io.File getCanonicalFile()
                              throws java.io.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 java.io.File
Returns:
an IFSJavaFile object based on the canonical path name of the current object.
Throws:
java.io.IOException - If an I/O error occurs while communicating with the iSeries server.
See Also:
getCanonicalPath()

getCanonicalPath

public java.lang.String getCanonicalPath()
                                  throws java.io.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 java.io.File
Returns:
The canonical path name for this IFSJavaFile.
Throws:
java.io.IOException - If an I/O error occurs while communicating with the iSeries server.

getName

public java.lang.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 java.io.File
Returns:
The name (without any directory components) of this IFSJavaFile.

getParent

public java.lang.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 java.io.File
Returns:
The parent directory if one exists; null otherwise.

getParentFile

public java.io.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 null if the separator character does not appear in the path 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 java.io.File
Returns:
an IFSJavaFile object representing the parent directory if one exists; null otherwise.
See Also:
getParent()

getPath

public java.lang.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 java.io.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 java.io.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 java.io.File
Returns:
true if the path name specification is absolute; false otherwise.

isDirectory

public boolean isDirectory()
Indicates if the IFSJavaFile is a directory.
Overrides:
isDirectory in class java.io.File
Returns:
true if the IFSJavaFile exists and is a directory; false otherwise.

isFile

public boolean isFile()
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 java.io.File
Returns:
true if the specified file exists and is a "normal" file; false otherwise.

isHidden

public boolean isHidden()
Indicates if the IFSJavaFile is hidden. On the iSeries server, a file is hidden if its hidden attribute is set.
Overrides:
isHidden in class java.io.File
Returns:
true if the file is hidden; false otherwise.

lastModified

public long lastModified()
Indicates the time that the IFSJavaFile was last modified.
Overrides:
lastModified in class java.io.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.

length

public long length()
Indicates the length of this IFSJavaFile.
Overrides:
length in class java.io.File
Returns:
The length, in bytes, of the IFSJavaFile, or 0 if it does not exist.

list

public java.lang.String[] list()
Lists the files in this IFSJavaFile directory.
Overrides:
list in class java.io.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.

list

public java.lang.String[] list(java.io.FilenameFilter filter)
Lists the files in this IFSJavaFile directory that satisfy filter.
Overrides:
list in class java.io.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);

list

public java.lang.String[] list(IFSFileFilter filter)
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);

list

public java.lang.String[] list(IFSFileFilter filter,
                               java.lang.String pattern)
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.

list

public java.lang.String[] list(java.lang.String pattern)
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.

listFiles

public java.io.File[] listFiles()
Lists the files in this IFSJavaFile directory. With the use of this function, attribute information is cached and will not be refreshed from the iSeries server. This means attribute information can become inconsistent with the iSeries server.
Overrides:
listFiles in class java.io.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.

listFiles

public java.io.File[] listFiles(java.io.FilenameFilter filter)
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 iSeries server. This means attribute information can become inconsistent with the iSeries server.
Overrides:
listFiles in class java.io.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);

listFiles

public java.io.File[] listFiles(java.io.FileFilter filter)
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 iSeries server. This means attribute information can become inconsistent with the iSeries server.
Overrides:
listFiles in class java.io.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);

listFiles

public java.io.File[] listFiles(IFSFileFilter filter)
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 iSeries server. This means attribute information can become inconsistent with the iSeries server.
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);

listFiles

public java.io.File[] listFiles(IFSFileFilter filter,
                                java.lang.String pattern)
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 iSeries server. This means attribute information can become inconsistent with the iSeries server.

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.

listFiles

public java.io.File[] listFiles(java.lang.String pattern)
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 iSeries server. This means attribute information can become inconsistent with the iSeries server.
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.

listRoots

public static java.io.File[] listRoots()
Lists the file system roots for the integrated file system of the iSeries server. The iSeries 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 iSeries server. Since the iSeries integrated file system has only one root, the returned array contains only one element.

mkdir

public boolean mkdir()
Creates a directory whose path name is specified by this IFSJavaFile.
Overrides:
mkdir in class java.io.File
Returns:
true if the directory could be created; false otherwise.

mkdirs

public boolean mkdirs()
Creates a directory whose path name is specified by this IFSJavaFile, including any necessary parent directories.
Overrides:
mkdirs in class java.io.File
Returns:
true if the directory (or directories) could be created; false otherwise.

renameTo

public boolean renameTo(IFSJavaFile dest)
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.

renameTo

public boolean renameTo(java.io.File dest)
Renames the IFSJavaFile to have the path name of dest. Wildcards are not permitted in this file name.
Overrides:
renameTo in class java.io.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.

setLastModified

public boolean setLastModified(long time)
Sets the last modified time of the file named by this IFSJavaFile object.
Overrides:
setLastModified in class java.io.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.

setLength

public boolean setLength(int length)
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.

setPath

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

setReadOnly

public boolean setReadOnly()
Marks the file named by this IFSJavaFile object so that only read operations are allowed. On the iSeries server, a file is marked read only by setting the read only attribute of the file.
Overrides:
setReadOnly in class java.io.File
Returns:
true if the read only attribute is set; false otherwise.

setSystem

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

toString

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

toURL

public java.net.URL toURL()
                   throws java.net.MalformedURLException
Converts the abstract path name into a file: URL. The iSeries file/directory will be accessed and if it is a directory the resulting URL will end with the iSeries separator character (forward slash). The server 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 java.io.File
Returns:
The URL form of the abstract path name of this object.
Throws:
java.net.MalformedURLException - If the URL cannot be formed.