Filename Class Reference

#include <c4d_file.h>

Detailed Description

Manages file and path names.

Private Attributes

maxon::Url dummy1
 

Constructors/Destructors

 Filename ()
 
 Filename (const Char *string)
 
 Filename (const maxon::String &string)
 
 Filename (const Filename &src)
 
 ~Filename ()
 

String Content

Bool IsPopulated () const
 
String GetString () const
 
void SetString (const maxon::String &str)
 

Directory/File Parts

const Filename GetDirectory () const
 
void SetDirectory (const Filename &str)
 
const Filename GetFile () const
 
void SetFile (const Filename &str)
 
String GetFileString () const
 

Suffix Part

String GetSuffix () const
 
void SetSuffix (const maxon::String &str)
 
void ClearSuffix ()
 
void ClearSuffixComplete ()
 
Bool CheckSuffix (const maxon::String &str) const
 

Read/Write Memory

void SetMemoryReadMode (void *adr, Int size=-1, Bool transferOwnership=false)
 
void SetMemoryWriteMode (MemoryFileStruct *mfs)
 

Operators

const Filenameoperator= (const Filename &fname)
 
const Filenameoperator+= (const Filename &fname)
 
Bool operator== (const Filename &fname) const
 
Bool operator!= (const Filename &fname) const
 
void CopyTo (Filename *dst) const
 
Bool IsBrowserUrl () const
 
Bool FileSelect (FILESELECTTYPE type, FILESELECT flags, const maxon::String &title, const maxon::String &force_suffix=maxon::String())
 
const Filename operator+ (const Filename &fname1, const Filename &fname2)
 
static maxon::Result< BoolFileSelectMultiple (FILESELECT flags, const maxon::String &title, const maxon::Url &startUrl, const maxon::Id &settingsIdentifier, const maxon::Block< maxon::Tuple< maxon::String, maxon::String >> &filterStrings, const maxon::ValueReceiver< const maxon::Url & > &selectedUrls)
 

Constructor & Destructor Documentation

◆ Filename() [1/4]

Filename ( )

Default constructor.

◆ Filename() [2/4]

Filename ( const Char string)

Constructs the filename from a character array.

Parameters
[in]stringThe filename character array.

◆ Filename() [3/4]

Filename ( const maxon::String string)

Constructs the filename from a string.

Parameters
[in]stringThe filename string.

◆ Filename() [4/4]

Filename ( const Filename src)

Copy constructor. Creates a filename from another filename.

Parameters
[in]srcThe source filename.

◆ ~Filename()

~Filename ( )

Default destructor.

Member Function Documentation

◆ IsPopulated()

Bool IsPopulated ( ) const

Checks if the filename has been set.

Returns
true if filename was set, otherwise false.

◆ GetString()

String GetString ( ) const

Gets the String of the filename.

Returns
The string with the full filename.

◆ SetString()

void SetString ( const maxon::String str)

Sets the filename to the passed string.

Parameters
[in]strThe string to use to set the filename.

◆ GetDirectory()

const Filename GetDirectory ( ) const

Gets the directory that the file is located.

Returns
The directory part for the filename.

◆ SetDirectory()

void SetDirectory ( const Filename str)

Sets the directory for the filename. The file part remains unchanged.

Parameters
[in]strThe directory to set for the filename.

◆ GetFile()

const Filename GetFile ( ) const

Gets the file part of the filename only, without the path.

Returns
The file part of the filename.

◆ SetFile()

void SetFile ( const Filename str)

Sets the file part for the filename. The directory part remains unchanged.

Parameters
[in]strThe file part to set for the filename.

◆ GetFileString()

String GetFileString ( ) const

Convenience function to directly get the file part string. Identical to GetFile().GetString().

Returns
The file part of the filename as a string.

◆ GetSuffix()

String GetSuffix ( ) const

Gets the suffix of the filename.

Note
Suffix strings do not contain the dot character '.'.
Returns
The suffix. Only contains the suffix part without dot (e.g. "TIF").

◆ SetSuffix()

void SetSuffix ( const maxon::String str)

Sets the suffix part of the filename.

Note
Suffix strings do not contain the dot character '.'.
Parameters
[in]strA string with the suffix for the file. Only contains the suffix part and no dot (e.g. "TIF").

◆ ClearSuffix()

void ClearSuffix ( )

Clears the suffix part of the filename.

◆ ClearSuffixComplete()

void ClearSuffixComplete ( )

Same as ClearSuffix() only that it also clears suffixes longer than seven characters.

◆ CheckSuffix()

Bool CheckSuffix ( const maxon::String str) const

Checks if the suffix of the filename is the same as its string.

Parameters
[in]strThe suffix to check against.
Returns
true if the suffix was checked successfully, otherwise false.

◆ SetMemoryReadMode()

void SetMemoryReadMode ( void *  adr,
Int  size = -1,
Bool  transferOwnership = false 
)

Sets the filename to read from a memory block instead of from a file.

Parameters
[in]adrThe memory to read from. The caller owns the pointed memory block.
[in]sizeThe size of memory block starting at adr, or -1 if the buffer is "big enough".
[in]transferOwnershipIf true the ownership of the memory block is transfered to the caller, who then needs to free the memory with DeleteMem().
Otherwise (false by default) the memory block will be freed when the MemoryFileStruct is destructed.

◆ SetMemoryWriteMode()

void SetMemoryWriteMode ( MemoryFileStruct mfs)

Sets the filename to write to a memory block instead of to a file.

Parameters
[in]mfsThe memory file to write to. The caller owns the pointed memory file.

◆ operator=()

const Filename& operator= ( const Filename fname)

Assignment operator. Assigns the right-operand filename to the left-operand filename.

Parameters
[in]fnameThe right-operand filename.
Returns
The left-operand filename.

◆ operator+=()

const Filename& operator+= ( const Filename fname)

Concatenates the filenames and set the left-hand operand to the result.

Parameters
[in]fnameThe right-operand filename.
Returns
The left-operand filename.

◆ operator==()

Bool operator== ( const Filename fname) const

Checks if two filenames are equal.

Parameters
[in]fnameThe right-operand filename.
Returns
true if filenames are equal, otherwise false.

◆ operator!=()

Bool operator!= ( const Filename fname) const

Check if two filenames are different.

Parameters
[in]fnameThe right-operand filename.
Returns
true if filenames are different, otherwise false.

◆ CopyTo()

void CopyTo ( Filename dst) const

Copies the filename to dst.

Parameters
[out]dstThe destination filename. The caller owns the pointed filename.

◆ IsBrowserUrl()

Bool IsBrowserUrl ( ) const

Checks if the filename is a content browser url.

Returns
true if the filename is a browser url, otherwise false.

◆ FileSelect()

Bool FileSelect ( FILESELECTTYPE  type,
FILESELECT  flags,
const maxon::String title,
const maxon::String force_suffix = maxon::String() 
)

Opens a file selector dialog. Example: To load a file:

Bool ok = fn.FileSelect(FILESELECTTYPE::ANYTHING, FILESELECT::LOAD, "Load");
maxon::Bool Bool
Definition: ge_sys_math.h:55
@ LOAD
Load dialog.
@ ANYTHING
Any file.

To save a bmp file:

Bool ok = fn.FileSelect(FILESELECTTYPE::IMAGES, FILESELECT::SAVE, "Save", "bmp");
@ SAVE
Save dialog.
@ IMAGES
Image files.
Parameters
[in]typeThe type of file to show in the file selector: FILESELECTTYPE
[in]flagsThe file selector flags: FILESELECT
[in]titleThe title for the file selector dialog.
[in]force_suffixSet this to suffix to force a filename suffix when in save mode.
Returns
true if the user selected a file, otherwise false.

◆ FileSelectMultiple()

static maxon::Result<Bool> FileSelectMultiple ( FILESELECT  flags,
const maxon::String title,
const maxon::Url startUrl,
const maxon::Id settingsIdentifier,
const maxon::Block< maxon::Tuple< maxon::String, maxon::String >> &  filterStrings,
const maxon::ValueReceiver< const maxon::Url & > &  selectedUrls 
)
static

FileSelectMultiple allows to select files or folders in a OS file chooser dialog.

Parameters
[in]flagsFlags see FILESELECT.
[in]titleTitle to be set in the window.
[in]startUrlStart url to select in the file chooser.
[in]settingsIdentifierIdentifier to store settings for different callers (e.g. window dimensions etc). Every caller can have different settings. Keep empty for default settings
[in]filterStringsArray with tuples for valid file suffixes. first: name, second: ; seperated list of suffixes. e.g. BaseArray<Tuple<String, String>> filterStrings; filterStrings.Append({"All files"_s, "*.*"_s}) iferr_return; filterStrings.Append({"3D-Formats"_s, "*.c4d;*.dem;*.dxf;*.iob;*.lwo;*.lws;*.3dm;*.3dmf;*.ai;*.ps;*.wrl;*.3ds;*.obj;*.mon;*.dae;*.dwg;*.fbx;*.igs"_s}) iferr_return;
[out]selectedUrlsValue receiver which is triggered for every selected url.
Returns
True on success. False if user canceled. Error otherwise.

Friends And Related Function Documentation

◆ operator+

const Filename operator+ ( const Filename fname1,
const Filename fname2 
)
friend

Concatenates the two filenames. It will join directories and files parts.

Parameters
[in]fname1The left-operand filename.
[in]fname2The right-operand filename.
Returns
The result of the concatenation of the 2 filenames.

Member Data Documentation

◆ dummy1

maxon::Url dummy1
private