Avidemux 2.6 Scripting Reference
 All Classes Functions Enumerations Enumerator Properties Groups Pages
Public Types | Public Member Functions | Properties | List of all members
Directory Class Reference

The Directory class provides access to directory structures and their contents. More...

Public Types

enum  Filter {
  Directories = 0x001, Files = 0x002, Drives = 0x004, NoSymLinks = 0x008,
  AllEntries = Directories | Files | Drives, Readable = 0x010, Writable = 0x020, Executable = 0x040,
  Modified = 0x080, Hidden = 0x100, System = 0x200, AllDirectories = 0x400,
  CaseSensitive = 0x800, NoDotAndDotDot = 0x1000, NoFilter = -1
}
 Describes the filtering options available to Directory; e.g. for entryList() and entryInfoList(). More...
enum  Sort {
  Name = 0x00, Time = 0x01, Size = 0x02, Type = 0x80,
  Unsorted = 0x03, DirectoriesFirst = 0x04, Reversed = 0x08, IgnoreCase = 0x10,
  DirectoriesLast = 0x20, LocaleAware = 0x40, NoSort = -1
}
 Describes the sort options available to Directory, e.g. for entryList() and entryInfoList(). More...

Public Member Functions

String absoluteFilePath (String fileName)
 Returns the absolute path name of a file in the directory.
Boolean changeDirectory (String dirName)
 Changes the Directory object's directory to dirName.
Boolean changeDirectoryUp ()
 Changes directory by moving one directory up from the Directory object's current directory.
String cleanPath (String path)
 Removes all multiple directory separators "/" and resolves any "." or ".." found in the path.
 Directory (String path="")
 Constructs a Directory object pointing to the given directory path. If path is empty the program's working directory, ("."), is used.
 Directory (String path, String nameFilter, Sort sort=Sort(Name|IgnoreCase), Filter filter=AllEntries)
 Constructs a Directory object with specified path, that filters its entries by name using nameFilter and by attributes using filter. It also sorts the names using sort.
Array entryInfoList (Filter filters=NoFilter, Sort sort=NoSort)
 Returns a list of FileInformation objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with the nameFilters and filter properties, and sorted according to the flags set with the sorting property.
Array entryInfoList (Array nameFilters, Filter filters=NoFilter, Sort sort=NoSort)
 Returns a list of FileInformation objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with the nameFilters and filter properties, and sorted according to the flags set with the sorting property.
Array entryList (Filter filters=NoFilter, Sort sort=NoSort)
 Returns a list of the names of all the files and directories in the directory.
Array entryList (Array nameFilters, Filter filters=NoFilter, Sort sort=NoSort)
 Returns a list of the names of all the files and directories in the directory.
Boolean exists (String name)
 Returns true if the file called name exists; otherwise returns false.
String filePath (String fileName)
 Returns the path name of a file in the directory.
String fromNativeSeparators (String pathName)
 Returns pathName using '/' as file separator.
Boolean makeAbsolute ()
 Converts the directory path to an absolute path.
Boolean makeDirectory (String dirName)
 Creates a sub-directory called dirName.
Boolean makePath (String dirPath)
 Creates the directory path dirPath.
Boolean match (Array filters, String fileName)
 Returns true if the fileName matches any of the wildcard (glob) patterns in the list of filters; otherwise returns false.
Boolean match (String filter, String fileName)
 Returns true if the fileName matches the wildcard (glob) pattern filter; otherwise returns false.
void refresh ()
 Refreshes the directory information.
String relativeFilePath (String fileName)
 Returns the path to fileName relative to the directory.
Boolean remove (String fileName)
 Removes the file, fileName.
Boolean removeDirectory (String dirName)
 Removes the directory specified by dirName.
Boolean removePath (String dirPath)
 Removes the directory path dirPath.
Boolean rename (String oldName, String newName)
 Renames a file or directory from oldName to newName.
String toNativeSeparators (String pathName)
 Returns pathName with the '/' separators converted to separators that are appropriate for the underlying operating system.

Properties

String absolutePath
 Returns the absolute path (a path that starts with "/" or with a drive specification), which may contain symbolic links, but never contains redundant ".", ".." or multiple separators.
String canonicalPath
 Returns the canonical path, i.e. a path without symbolic links or redundant "." or ".." elements.
Number count
 Returns the total number of directories and files in the directory.
String currentPath
 Gets or sets the current path.
String directoryName
 Returns the name of the directory.
Array drives
 Returns a list of the root directories on this system.
Boolean exists
 Returns true if the directory exists; otherwise returns false.
Filter filter
 Gets or sets the filter used by entryList() and entryInfoList().
String homePath
 Returns the absolute path of the user's home directory.
Boolean isAbsolute
 Returns true if the directory's path is absolute; otherwise returns false.
Boolean isReadable
 Returns true if the directory is readable and we can open files by name; otherwise returns false.
Boolean isRelative
 Returns true if the directory path is relative; otherwise returns false.
Boolean isRoot
 Returns true if the directory is the root directory; otherwise returns false.
Array nameFilters
 Gets or sets the name filters used by entryList() and entryInfoList().
String path
 Gets or sets the path of the Directory object.
String rootPath
 Returns the absolute path of the root directory.
String separator
 Returns the native directory separator: "/" under Unix (including Mac OS X) and "\" under Windows.
Sort sorting
 Gets or sets the sort order used by entryList() and entryInfoList().
String tempPath
 Returns the absolute path of the system's temporary directory.

Detailed Description

The Directory class provides access to directory structures and their contents.

A Directory object is used to manipulate path names, access information regarding paths and files, and manipulate the underlying file system.

The Directory class uses "/" as a universal directory separator in the same way that "/" is used as a path separator in URLs. If you always use "/" as a directory separator, the Directory class will translate your paths to conform to the underlying operating system.

A Directory object can point to a file using either a relative or an absolute path. Absolute paths begin with the directory separator (optionally preceded by a drive specification under Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current directory.

Examples:
TranscodeDirectory.admjs.

Member Enumeration Documentation

enum Filter

Describes the filtering options available to Directory; e.g. for entryList() and entryInfoList().

The filter value is specified by combining values from the following list using the bitwise OR operator:

Enumerator:
Directories 

List directories that match the filters.

Files 

List files.

Drives 

List disk drives (ignored under Unix).

NoSymLinks 

Do not list symbolic links (ignored by operating systems that don't support symbolic links).

AllEntries 

List directories, files, drives and symlinks (this does not list broken symlinks unless you specify System).

Readable 

List files for which the application has read access. The Readable value needs to be combined with Directories or Files.

Writable 

List files for which the application has write access. The Writable value needs to be combined with Directories or Files.

Executable 

List files for which the application has execute access. The Executable value needs to be combined with Directories or Files.

Modified 

Only list files that have been modified (ignored under Unix).

Hidden 

List hidden files (on Unix, files starting with a ".").

System 

List system files (on Unix, FIFOs, sockets and device files).

AllDirectories 

List all directories; i.e. don't apply the filters to directory names.

CaseSensitive 

The filter should be case sensitive.

NoDotAndDotDot 

Do not list the special entries "." and "..".

NoFilter 

List everything.

Examples:
TranscodeDirectory.admjs.
enum Sort

Describes the sort options available to Directory, e.g. for entryList() and entryInfoList().

The sort value is specified by combining values from the following list using the bitwise OR operator. You can only specify one of the first four. If you specify both DirectoriesFirst and Reversed, directories are still put first, but in reverse order; the files will be listed after the directories, again in reverse order.

Enumerator:
Name 

Sort by name.

Time 

Sort by time (modification time).

Size 

Sort by file size.

Type 

Sort by file type (extension).

Unsorted 

Do not sort.

DirectoriesFirst 

Put the directories first, then the files.

Reversed 

Reverse the sort order.

IgnoreCase 

Sort case-insensitively.

DirectoriesLast 

Put the files first, then the directories.

LocaleAware 

Sort items appropriately using the current locale settings.

NoSort 

No sorting.

Examples:
TranscodeDirectory.admjs.

Constructor & Destructor Documentation

Directory ( String  path,
String  nameFilter,
Sort  sort = Sort(Name|IgnoreCase),
Filter  filter = AllEntries 
)

Constructs a Directory object with specified path, that filters its entries by name using nameFilter and by attributes using filter. It also sorts the names using sort.

The default nameFilter is an empty string, which excludes nothing; the default filters is AllEntries, which also means exclude nothing. The default sort is Name | IgnoreCase, i.e. sort by name case-insensitively.

If path is an empty string, Directory uses "." (the current directory). If nameFilter is an empty string, Directory uses the name filter "*" (all files).

Note that path need not exist.

Member Function Documentation

String absoluteFilePath ( String  fileName)

Returns the absolute path name of a file in the directory.

Does not check if the file actually exists in the directory; but see Directory.exists. Redundant multiple separators or "." and ".." directories in fileName are not removed (see cleanPath()).

Boolean changeDirectory ( String  dirName)

Changes the Directory object's directory to dirName.

Note that the logical cd() operation is not performed if the new directory does not exist. Calling cd("..") is equivalent to calling cdUp().

Returns
Returns true if the new directory exists and is readable; otherwise returns false.
Boolean changeDirectoryUp ( )

Changes directory by moving one directory up from the Directory object's current directory.

Note that the logical changeDirectoryUp() operation is not performed if the new directory does not exist.

Returns
Returns true if the new directory exists and is readable; otherwise returns false.
String cleanPath ( String  path)

Removes all multiple directory separators "/" and resolves any "." or ".." found in the path.

Symbolic links are kept. This function does not return the canonical path, but rather the simplest version of the input. For example, "./local" becomes "local", "local/../bin" becomes "bin" and "/local/usr/../bin" becomes "/local/bin".

Array entryInfoList ( Filter  filters = NoFilter,
Sort  sort = NoSort 
)

Returns a list of FileInformation objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with the nameFilters and filter properties, and sorted according to the flags set with the sorting property.

The name filter, file attribute filter, and sorting specification can be overridden using the nameFilters, filters, and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

Examples:
TranscodeDirectory.admjs.
Array entryInfoList ( Array  nameFilters,
Filter  filters = NoFilter,
Sort  sort = NoSort 
)

Returns a list of FileInformation objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with the nameFilters and filter properties, and sorted according to the flags set with the sorting property.

The attribute filter and sorting specifications can be overridden using the filters and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

Array entryList ( Filter  filters = NoFilter,
Sort  sort = NoSort 
)

Returns a list of the names of all the files and directories in the directory.

The list is ordered according to the name and attribute filters previously set with the nameFilters and filter properties. The list is also sorted according to the flags set with the sorting property.

The attribute filter and sorting specifications can be overridden using the filters and sort arguments.

Note: To list symlinks that point to non existing files, System must be passed to the filter.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

Array entryList ( Array  nameFilters,
Filter  filters = NoFilter,
Sort  sort = NoSort 
)

Returns a list of the names of all the files and directories in the directory.

The list is ordered according to the name and attribute filters previously set with the nameFilters and filter properties. The list is also sorted according to the flags set with the sorting property.

The name filter, file attribute filter and sorting specification can be overridden using the nameFilters, filters, and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

Boolean exists ( String  name)

Returns true if the file called name exists; otherwise returns false.

Unless name contains an absolute file path, the file name is assumed to be relative to the current directory.

String filePath ( String  fileName)

Returns the path name of a file in the directory.

Does not check if the file actually exists in the directory; but see Directory.exists. If the Directory object is relative, the returned path name will also be relative. Redundant multiple separators or "." and ".." directories in fileName are not removed (see cleanPath()).

String fromNativeSeparators ( String  pathName)

Returns pathName using '/' as file separator.

On Windows, for instance, fromNativeSeparators("c:\\winnt\\system32") returns "c:/winnt/system32". The returned string may be the same as the argument on some operating systems, for example on Unix.

Boolean makeAbsolute ( )

Converts the directory path to an absolute path.

If it is already absolute nothing happens.

Returns
Returns true if the conversion succeeded; otherwise returns false.
Boolean makeDirectory ( String  dirName)

Creates a sub-directory called dirName.

Returns
Returns true on success; otherwise returns false.
Boolean makePath ( String  dirPath)

Creates the directory path dirPath.

The function will create all parent directories necessary to create the directory.

Returns
Returns true if successful; otherwise returns false.
Boolean match ( Array  filters,
String  fileName 
)

Returns true if the fileName matches any of the wildcard (glob) patterns in the list of filters; otherwise returns false.

The matching is case insensitive.

Boolean match ( String  filter,
String  fileName 
)

Returns true if the fileName matches the wildcard (glob) pattern filter; otherwise returns false.

The filter may contain multiple patterns separated by spaces or semicolons. The matching is case insensitive.

Boolean remove ( String  fileName)

Removes the file, fileName.

Returns
Returns true if the file is removed successfully; otherwise returns false.
Boolean removeDirectory ( String  dirName)

Removes the directory specified by dirName.

The directory must be empty for removeDirectory() to succeed.

Returns
Returns true if successful; otherwise returns false.
Boolean removePath ( String  dirPath)

Removes the directory path dirPath.

The function will remove all parent directories in dirPath, provided that they are empty. This is the opposite of makePath(dirPath).

Returns
Returns true if successful; otherwise returns false.
Boolean rename ( String  oldName,
String  newName 
)

Renames a file or directory from oldName to newName.

On most file systems, rename() fails only if oldName does not exist, if newName and oldName are not on the same partition or if a file with the new name already exists. However, there are also other reasons why rename() can fail. For example, on at least one file system rename() fails if newName points to an open file.

Returns
Returns true if successful; otherwise returns false.
String toNativeSeparators ( String  pathName)

Returns pathName with the '/' separators converted to separators that are appropriate for the underlying operating system.

On Windows, toNativeSeparators("c:/winnt/system32") returns "c:\winnt\system32". The returned string may be the same as the argument on some operating systems, for example on Unix.

Property Documentation

String canonicalPath
read

Returns the canonical path, i.e. a path without symbolic links or redundant "." or ".." elements.

On systems that do not have symbolic links this function will always return the same string that absolutePath returns. If the canonical path does not exist (normally due to dangling symbolic links) canonicalPath returns an empty string.

Number count
read

Returns the total number of directories and files in the directory.

Equivalent to entryList().length.

String directoryName
read

Returns the name of the directory.

A directory name isn't the same as the path, e.g. a directory with the name "mail", might have the path "/var/spool/mail". If the directory has no name (e.g. it is the root directory) an empty string is returned.

No check is made to ensure that a directory with this name actually exists; but see Directory.exists.

See Also
exists
Array drives
read

Returns a list of the root directories on this system.

On Windows this returns a list of FileInformation objects containing "C:/", "D:/", etc. On other operating systems, it returns a list containing just one root directory (i.e. "/").

Boolean exists
read

Returns true if the directory exists; otherwise returns false.

If a file with the same name is found this function will return false.

Filter filter
readwrite

Gets or sets the filter used by entryList() and entryInfoList().

The filter is used to specify the kind of files that should be returned by entryList() and entryInfoList().

String homePath
read

Returns the absolute path of the user's home directory.

Under Windows this function will return the directory of the current user's profile. Typically, this is: C:/Documents and Settings/Username

Use the toNativeSeparators() function to convert the separators to the ones that are appropriate for the underlying operating system.

If the directory of the current user's profile does not exist or cannot be retrieved, the following alternatives will be checked (in the given order) until an existing and available path is found:

  • The path specified by the USERPROFILE environment variable.
  • The path formed by concatenating the HOMEDRIVE and HOMEPATH environment variables.
  • The path specified by the HOME environment variable.
  • The path returned by the rootPath property (which uses the SystemDrive environment variable).
  • The C:/ directory.

Under non-Windows operating systems the HOME environment variable is used if it exists, otherwise the path returned by the rootPath() function is used.

Boolean isReadable
read

Returns true if the directory is readable and we can open files by name; otherwise returns false.

Warning: A false value from this function isn't a guarantee that files in the directory are not accessible.

Boolean isRoot
read

Returns true if the directory is the root directory; otherwise returns false.

Note: If the directory is a symbolic link to the root directory this function returns false. If you want to test for this use canonicalPath.

Array nameFilters
readwrite

Gets or sets the name filters used by entryList() and entryInfoList().

Each name filter is a wildcard (globbing) filter that understands * and ? wildcards.

String path
readwrite

Gets or sets the path of the Directory object.

The path is cleaned of redundant ".", ".." and of multiple separators. No check is made to see whether a directory with this path actually exists; but you can check for yourself using exists().

The path can be either absolute or relative. Absolute paths begin with the directory separator "/" (optionally preceded by a drive specification under Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current directory. An example of an absolute path is the string "/tmp/quartz", a relative path might look like "src/fatlib".

String rootPath
read

Returns the absolute path of the root directory.

For Unix operating systems this returns "/". For Windows file systems this normally returns "c:/".

String separator
read

Returns the native directory separator: "/" under Unix (including Mac OS X) and "\" under Windows.

You do not need to use this function to build file paths. If you always use "/", the Directory class will translate your paths to conform to the underlying operating system. If you want to display paths to the user using their operating system's separator use toNativeSeparators()

String tempPath
read

Returns the absolute path of the system's temporary directory.

On Unix/Linux systems this is usually /tmp; on Windows this is usually the path in the TEMP or TMP environment variable. Whether a directory separator is added to the end or not, depends on the operating system.