Stellent
HowToComponents
JavaDoc

intradoc.common
Class FileUtils

java.lang.Object
  |
  +--intradoc.common.FileUtils

public class FileUtils
extends java.lang.Object


Field Summary
static int F_NO_SIGNATURE
           
static long INVALID_FILE_MARKER
           
static boolean m_bgLockThreadStarted
           
static java.lang.String m_isoSystemEncoding
           
static java.lang.String m_javaSystemEncoding
           
static java.lang.String m_lockingLogPath
           
static java.lang.String m_lockingLogPrefix
           
static int m_lockTimeout
           
static FileUtilsLockThread m_longTermLockImpl
           
protected static NativeOsUtils m_utils
           
static boolean m_validateRenames
           
static int MAX_LOCK_SUFFIC_COUNTER
           
static byte[] UNICODE_BIG_SIGNATURE
           
static byte[] UNICODE_LITTLE_SIGNATURE
           
static byte[] UTF8_SIGNATURE
           
 
Constructor Summary
FileUtils()
           
 
Method Summary
static int checkFile(java.lang.String path, boolean shouldBeFile, boolean needWriteAccess)
           
static java.lang.String checkForASCIIEncoding(byte[] buf, int start, int len)
          Make a guess if the buf contains nice ASCII characters.
static java.lang.String checkForUnicodeEncoding(byte[] buf, int start, int len)
           
static void checkOrCreateDirectory(java.lang.String dir, int numParents)
           
static void checkOrCreateDirectoryWithLock(java.lang.String dir, int numParents, boolean hasLock)
           
static void checkOrCreateSubDirectory(java.lang.String rootDir, java.lang.String subDir)
           
static void closeFiles(java.io.OutputStream fos, java.io.InputStream fis)
           
static void closeObject(java.lang.Object o)
           
static void closeObjectEx(java.lang.Object o)
           
static void closeObjects(java.lang.Object o1, java.lang.Object o2)
           
static void closeObjectsEx(java.lang.Object o1, java.lang.Object o2)
          Closes the IO related objects o1 and o2 in a reasonable order.
static void closeReader(java.io.Reader r)
           
static void copyDirectory(java.io.File fromDir, java.io.File toDir, int numParents, boolean forceCopy)
           
static void copyFile(java.io.File from, java.io.File to, boolean forceCopy)
           
protected static long[] createLockingData(java.lang.String dir)
           
static void deleteDirectory(java.io.File dir, boolean deleteSelf)
           
static void deleteFile(java.lang.String path)
           
static java.lang.String directorySlashes(java.lang.String dir)
           
static java.lang.String directorySlashesEx(java.lang.String dir, boolean isDir)
           
static boolean filesAreDifferent(java.lang.String file1, java.lang.String file2)
           
static java.lang.String fileSlashes(java.lang.String filePath)
           
static java.lang.String getAbsolutePath(java.lang.String path)
           
static java.lang.String getAbsolutePath(java.lang.String dir, java.lang.String path)
           
protected static int getDefaultEncodingFlags()
           
static java.lang.String getDirectory(java.lang.String filename)
           
static java.lang.String getErrorMsg(java.lang.String path, boolean shouldBeFile, int errorCode)
           
static java.lang.String getExtension(java.lang.String path)
           
static java.lang.String[] getMatchingFileNames(java.lang.String dir, java.lang.String wildCard)
           
static java.lang.String getName(java.lang.String filename)
           
static java.lang.String getParent(java.lang.String filename)
           
static java.lang.String getWorkingDir()
           
static boolean hasCurrentProcessLockedDirectoryBefore(java.lang.String dir)
           
static java.lang.String loadFile(java.io.InputStream is, java.lang.String type, java.lang.String[] encoding)
           
static boolean loadNativeOsUtils()
           
static java.lang.String loadProperties(java.util.Properties props, java.io.InputStream is)
           
static void loadProperties(java.util.Properties props, java.lang.String filePath)
           
static java.lang.String loadPropertiesEx(java.util.Properties props, java.io.InputStream is, java.lang.String encoding)
           
static void logLockingError(java.lang.String dir, java.lang.String msg)
           
static java.lang.String makeSafeDirectoryForNtfs(java.lang.String dir)
           
static java.io.BufferedReader openDataReader(java.io.BufferedInputStream bstream, java.lang.String encoding)
           
static java.io.BufferedReader openDataReader(java.io.File file)
           
static java.io.BufferedReader openDataReader(java.io.File file, java.lang.String encoding)
           
static java.io.BufferedReader openDataReader(java.lang.String path)
           
static java.io.BufferedReader openDataReader(java.lang.String dir, java.lang.String filename)
           
static java.io.BufferedReader openDataReader(java.lang.String dir, java.lang.String filename, java.lang.String encoding)
           
static java.io.BufferedReader openDataReaderEx(java.io.InputStream inStream, java.lang.String encoding, int flags)
           
static java.io.BufferedWriter openDataWriter(java.io.File file)
           
static java.io.BufferedWriter openDataWriter(java.io.File file, java.lang.String encoding)
           
static java.io.BufferedWriter openDataWriter(java.lang.String path)
           
static java.io.BufferedWriter openDataWriter(java.lang.String dir, java.lang.String filename)
           
static java.io.BufferedWriter openDataWriter(java.lang.String dir, java.lang.String filename, java.lang.String encoding)
           
static java.io.BufferedWriter openDataWriterEx(java.io.OutputStream out, java.lang.String encoding, int flags)
           
protected static void putLockData(java.lang.String dir, long[] lockData)
           
static void redirectOutput(java.lang.String filename)
           
static void releaseDirectory(java.lang.String dir)
           
static void releaseLongTermLock(java.lang.String dir, java.lang.String lockName, java.lang.String agent)
           
static java.lang.String removeParentDirReferences(java.lang.String path)
          removeParentDirReferences() removes "/../" parent directory references from a path.
static void renameFile(java.lang.String from, java.lang.String to)
           
static void renameFileEx(java.io.File fromFile, java.io.File toFile, boolean forceRename)
           
static void reserveDirectory(java.lang.String dir)
           
static boolean reserveLongTermLock(java.lang.String dir, java.lang.String lockName, java.lang.String agent, long timeout, boolean waitForEver)
           
protected static long[] retrieveAndClearLockData(java.lang.String dir)
           
static boolean setLastModified(java.lang.String fileName, long ts)
           
static void testFileSystem(java.lang.String dir)
           
static long touchFile(java.lang.String fileName)
           
static void validateDirectory(java.lang.String dir, java.lang.String errMsg)
           
static void validateFile(java.lang.String path, java.lang.String errMsg)
           
static void validatePath(java.lang.String path, java.lang.String errMsg, boolean shouldBeFile, boolean needWriteAccess)
           
static java.lang.String windowsSlashes(java.lang.String path)
          windowsSlashes() takes a path and converts all forward slashes into backwards slashes, trims off a trailing slash if one exists, and removes "/../" patterns in the expected way.
static void writeFileEncodingSignatureHeader(java.lang.String encoding, java.io.OutputStream out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INVALID_FILE_MARKER

public static final long INVALID_FILE_MARKER
See Also:
Constant Field Values

m_lockingLogPrefix

public static java.lang.String m_lockingLogPrefix

m_lockingLogPath

public static java.lang.String m_lockingLogPath

m_javaSystemEncoding

public static java.lang.String m_javaSystemEncoding

m_isoSystemEncoding

public static java.lang.String m_isoSystemEncoding

m_validateRenames

public static boolean m_validateRenames

m_lockTimeout

public static int m_lockTimeout

m_bgLockThreadStarted

public static boolean m_bgLockThreadStarted

m_longTermLockImpl

public static FileUtilsLockThread m_longTermLockImpl

MAX_LOCK_SUFFIC_COUNTER

public static final int MAX_LOCK_SUFFIC_COUNTER
See Also:
Constant Field Values

F_NO_SIGNATURE

public static final int F_NO_SIGNATURE
See Also:
Constant Field Values

UTF8_SIGNATURE

public static final byte[] UTF8_SIGNATURE

UNICODE_BIG_SIGNATURE

public static final byte[] UNICODE_BIG_SIGNATURE

UNICODE_LITTLE_SIGNATURE

public static final byte[] UNICODE_LITTLE_SIGNATURE

m_utils

protected static NativeOsUtils m_utils
Constructor Detail

FileUtils

public FileUtils()
Method Detail

reserveDirectory

public static void reserveDirectory(java.lang.String dir)

releaseDirectory

public static void releaseDirectory(java.lang.String dir)

reserveLongTermLock

public static boolean reserveLongTermLock(java.lang.String dir,
                                          java.lang.String lockName,
                                          java.lang.String agent,
                                          long timeout,
                                          boolean waitForEver)
                                   throws ServiceException
ServiceException

releaseLongTermLock

public static void releaseLongTermLock(java.lang.String dir,
                                       java.lang.String lockName,
                                       java.lang.String agent)

logLockingError

public static void logLockingError(java.lang.String dir,
                                   java.lang.String msg)

hasCurrentProcessLockedDirectoryBefore

public static boolean hasCurrentProcessLockedDirectoryBefore(java.lang.String dir)

createLockingData

protected static long[] createLockingData(java.lang.String dir)

retrieveAndClearLockData

protected static long[] retrieveAndClearLockData(java.lang.String dir)

putLockData

protected static void putLockData(java.lang.String dir,
                                  long[] lockData)

getMatchingFileNames

public static java.lang.String[] getMatchingFileNames(java.lang.String dir,
                                                      java.lang.String wildCard)

checkOrCreateDirectoryWithLock

public static void checkOrCreateDirectoryWithLock(java.lang.String dir,
                                                  int numParents,
                                                  boolean hasLock)
                                           throws ServiceException
ServiceException

checkOrCreateDirectory

public static void checkOrCreateDirectory(java.lang.String dir,
                                          int numParents)
                                   throws ServiceException
ServiceException

checkOrCreateSubDirectory

public static void checkOrCreateSubDirectory(java.lang.String rootDir,
                                             java.lang.String subDir)
                                      throws ServiceException
ServiceException

testFileSystem

public static void testFileSystem(java.lang.String dir)
                           throws ServiceException
ServiceException

openDataWriter

public static java.io.BufferedWriter openDataWriter(java.lang.String dir,
                                                    java.lang.String filename)
                                             throws java.io.IOException
java.io.IOException

openDataWriter

public static java.io.BufferedWriter openDataWriter(java.io.File file)
                                             throws java.io.IOException
java.io.IOException

openDataWriter

public static java.io.BufferedWriter openDataWriter(java.lang.String path)
                                             throws java.io.IOException
java.io.IOException

openDataWriter

public static java.io.BufferedWriter openDataWriter(java.lang.String dir,
                                                    java.lang.String filename,
                                                    java.lang.String encoding)
                                             throws java.io.IOException,
                                                    java.io.UnsupportedEncodingException
java.io.IOException
java.io.UnsupportedEncodingException

openDataWriter

public static java.io.BufferedWriter openDataWriter(java.io.File file,
                                                    java.lang.String encoding)
                                             throws java.io.IOException,
                                                    java.io.UnsupportedEncodingException
java.io.IOException
java.io.UnsupportedEncodingException

openDataWriterEx

public static java.io.BufferedWriter openDataWriterEx(java.io.OutputStream out,
                                                      java.lang.String encoding,
                                                      int flags)
                                               throws java.io.IOException,
                                                      java.io.UnsupportedEncodingException
java.io.IOException
java.io.UnsupportedEncodingException

writeFileEncodingSignatureHeader

public static void writeFileEncodingSignatureHeader(java.lang.String encoding,
                                                    java.io.OutputStream out)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.lang.String dir,
                                                    java.lang.String filename)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.io.File file)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.lang.String path)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.lang.String dir,
                                                    java.lang.String filename,
                                                    java.lang.String encoding)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.io.File file,
                                                    java.lang.String encoding)
                                             throws java.io.IOException
java.io.IOException

openDataReader

public static java.io.BufferedReader openDataReader(java.io.BufferedInputStream bstream,
                                                    java.lang.String encoding)
                                             throws java.io.IOException
java.io.IOException

getDefaultEncodingFlags

protected static int getDefaultEncodingFlags()

openDataReaderEx

public static java.io.BufferedReader openDataReaderEx(java.io.InputStream inStream,
                                                      java.lang.String encoding,
                                                      int flags)
                                               throws java.io.IOException
java.io.IOException

checkFile

public static int checkFile(java.lang.String path,
                            boolean shouldBeFile,
                            boolean needWriteAccess)

getErrorMsg

public static java.lang.String getErrorMsg(java.lang.String path,
                                           boolean shouldBeFile,
                                           int errorCode)

validateDirectory

public static void validateDirectory(java.lang.String dir,
                                     java.lang.String errMsg)
                              throws ServiceException
ServiceException

validateFile

public static void validateFile(java.lang.String path,
                                java.lang.String errMsg)
                         throws ServiceException
ServiceException

validatePath

public static void validatePath(java.lang.String path,
                                java.lang.String errMsg,
                                boolean shouldBeFile,
                                boolean needWriteAccess)
                         throws ServiceException
ServiceException

deleteFile

public static void deleteFile(java.lang.String path)

deleteDirectory

public static void deleteDirectory(java.io.File dir,
                                   boolean deleteSelf)
                            throws ServiceException
ServiceException

directorySlashesEx

public static java.lang.String directorySlashesEx(java.lang.String dir,
                                                  boolean isDir)

directorySlashes

public static java.lang.String directorySlashes(java.lang.String dir)

fileSlashes

public static java.lang.String fileSlashes(java.lang.String filePath)

renameFile

public static void renameFile(java.lang.String from,
                              java.lang.String to)
                       throws ServiceException
ServiceException

renameFileEx

public static void renameFileEx(java.io.File fromFile,
                                java.io.File toFile,
                                boolean forceRename)
                         throws ServiceException
ServiceException

copyFile

public static void copyFile(java.io.File from,
                            java.io.File to,
                            boolean forceCopy)
                     throws ServiceException
ServiceException

copyDirectory

public static void copyDirectory(java.io.File fromDir,
                                 java.io.File toDir,
                                 int numParents,
                                 boolean forceCopy)
                          throws ServiceException
ServiceException

closeFiles

public static void closeFiles(java.io.OutputStream fos,
                              java.io.InputStream fis)

closeObjectEx

public static void closeObjectEx(java.lang.Object o)
                          throws java.io.IOException
java.io.IOException

closeObject

public static void closeObject(java.lang.Object o)

closeObjectsEx

public static void closeObjectsEx(java.lang.Object o1,
                                  java.lang.Object o2)
                           throws java.io.IOException
Closes the IO related objects o1 and o2 in a reasonable order. o1 and o2 should be some sort of IO object, like a InputStream, OutputStream, Reader, or Writer. (Python does it better.) This method guarantees that both objects get close()d regardless of any exception that gets thrown. Exceptions from closes of "input" objects are ignored. If both arguments are output-type and both throw Exceptions, o1's exception gets thrown. If you pass an unreasonable argument, an IOException will get thrown.

java.io.IOException

closeObjects

public static void closeObjects(java.lang.Object o1,
                                java.lang.Object o2)

closeReader

public static void closeReader(java.io.Reader r)

touchFile

public static long touchFile(java.lang.String fileName)

setLastModified

public static boolean setLastModified(java.lang.String fileName,
                                      long ts)
                               throws ServiceException
ServiceException

loadNativeOsUtils

public static boolean loadNativeOsUtils()

getAbsolutePath

public static java.lang.String getAbsolutePath(java.lang.String path)

getAbsolutePath

public static java.lang.String getAbsolutePath(java.lang.String dir,
                                               java.lang.String path)

getDirectory

public static java.lang.String getDirectory(java.lang.String filename)

getParent

public static java.lang.String getParent(java.lang.String filename)

getName

public static java.lang.String getName(java.lang.String filename)

getWorkingDir

public static java.lang.String getWorkingDir()

getExtension

public static java.lang.String getExtension(java.lang.String path)

loadFile

public static java.lang.String loadFile(java.io.InputStream is,
                                        java.lang.String type,
                                        java.lang.String[] encoding)
                                 throws java.io.IOException
java.io.IOException

checkForASCIIEncoding

public static java.lang.String checkForASCIIEncoding(byte[] buf,
                                                     int start,
                                                     int len)
Make a guess if the buf contains nice ASCII characters. The rules are: 1. 7-bit clean 2. no 0 bytes


checkForUnicodeEncoding

public static java.lang.String checkForUnicodeEncoding(byte[] buf,
                                                       int start,
                                                       int len)

loadProperties

public static java.lang.String loadProperties(java.util.Properties props,
                                              java.io.InputStream is)
                                       throws java.io.IOException
java.io.IOException

loadPropertiesEx

public static java.lang.String loadPropertiesEx(java.util.Properties props,
                                                java.io.InputStream is,
                                                java.lang.String encoding)
                                         throws java.io.IOException
java.io.IOException

loadProperties

public static void loadProperties(java.util.Properties props,
                                  java.lang.String filePath)
                           throws java.io.IOException
java.io.IOException

redirectOutput

public static void redirectOutput(java.lang.String filename)

filesAreDifferent

public static boolean filesAreDifferent(java.lang.String file1,
                                        java.lang.String file2)
                                 throws java.io.IOException,
                                        ServiceException
java.io.IOException
ServiceException

windowsSlashes

public static java.lang.String windowsSlashes(java.lang.String path)
windowsSlashes() takes a path and converts all forward slashes into backwards slashes, trims off a trailing slash if one exists, and removes "/../" patterns in the expected way. This is useful for Windows native stuff that is very sensitive to such things.


removeParentDirReferences

public static java.lang.String removeParentDirReferences(java.lang.String path)
removeParentDirReferences() removes "/../" parent directory references from a path.


makeSafeDirectoryForNtfs

public static java.lang.String makeSafeDirectoryForNtfs(java.lang.String dir)


(c) 1996-2005  All rights reserved.  Stellent, Inc.