Name: defaultFolder

Synonyms: folder, directory

Type: property

Syntax: set the defaultFolder to <folderPath>

Summary:
Specifies the <folder> that is used by the <files> and <folders>
<function|functions> and by <command|commands> that manipulate <files>.

Introduced: 1.0

OS: mac, windows, linux, ios, android

Platforms: desktop, server, mobile

Example:
set the defaultFolder to "/Applications/GetIt" --MacOS, Linux-style file path

Example:
set the defaultFolder to "C:/Program Files/GetIt" -- Windows-style file path

Example:
# set the defaultFolder to the folder containing the stackfile
set the itemDelimiter to slash
get the effective filename of this stack
set the defaultFolder to item 1 to -2 of it


The result:
If you set the <defaultFolder> to a <folder(glossary)> that doesn't exist, the
<result> is set to "can't open directory" and the <value> of the
<defaultFolder> does not change.

Value:
The <defaultFolder> is a <string> consisting of a valid <file path|path>
to a <folder>. When a LiveCode application starts up, the
<defaultFolder> initially contains whatever the working directory was at
the time the application was launched. Typically this is the folder that
the application resides in, however this is not always the case and
shouldn't be relied on. It is best always to set the <defaultFolder>
before using relative paths.

When you start up the application via a file association (e.g. by
launching a document you have chosen to link to your application using
"Open With..." on Windows or by dragging the document onto the
application icon on OS X ) then the <defaultFolder> is set to the 
<folder> containing the document being launched.

Description:
Use the <defaultFolder> to perform <file> manipulations on <file|files> in
the same <folder> without having to include the <absolute file path|full
path>. 

The <defaultFolder> <property> specifies the <folder> LiveCode uses as
the <current folder|current directory> when resolving 
<relative file path|relative paths> (except for <relative file path|
relative paths> specified in the <stackFiles> <property>).

If you specify a <file> without giving its 
<absolute file path|full path>, LiveCode looks for
the file in the <defaultFolder>. If you specify a <relative file path|
relative path>, the <defaultFolder> is <prepend|prepended> to it to
create the <absolute file path|full path>.

You cannot delete the current <defaultFolder>.

>*Important:*  The folderPath is specified using <Unix> conventions,
> even on <Mac OS> and <Windows> systems. The names of <folder|folders>
> are separated with a "/" character, 
> and <absolute file path|absolute paths> (starting with a disk or 
> partition name) must begin with a "/" character. 

>*Note:* When setting the <defaultFolder>, any trailing slash will be
> removed. For example:

    set the defaultFolder to /Users/John/
    put the defaultFolder -- returns /Users/John

References: absolute file path (glossary), command (glossary), 
create alias (command), current folder (glossary), effective (keyword), 
file (glossary), file path (glossary), files (function), folder (glossary),
folders (function), function (glossary), it (keyword), item (keyword),
itemDelimiter (property), Mac OS (glossary), prepend (glossary),
property (glossary), relative file path (glossary), result (function),
revSetDatabaseDriverPath (command), slash (constant), 
stackFiles (property), string (glossary), Unix (glossary), 
value (glossary), Windows (glossary)

Tags: file system

