XSIUtils.ResolvePath
 
 
 

XSIUtils.ResolvePath

Introduced

v5.0

Description

Makes sure that all path separators are correct (that is, "\" on Windows and "/" on Linux) for the specified file path (which does not need to exist). This method also expands any environmental variables or Linktab rules. This is mainly useful for writing scripts that must work in a mixed-platform environment.

C# Syntax

String XSIUtils.ResolvePath( String in_Path );

Scripting Syntax

oString = XSIUtils.ResolvePath( [Path] );

Return Value

The resolved path as a String

Parameters

Parameter Type Description
Path String Path to a directory or file.

Examples

1. JScript Example

/*
        This example demonstrates how to use the ResolvePath method on a
        nonexistent file.
*/
NewScene( null, false );
strPath = Application.InstallationPath( siUserPath ) ;
strPath += "/Application/Plugins" ;
// On Windows the "/" slash will be replaced by "\"
Application.LogMessage( XSIUtils.ResolvePath(strPath) ) ;
if ( Platform == "Win32" ){
        // Demonstrate how ResolvePath will still fix an invalid path
        strBogusPath = XSIUtils.ResolvePath( "C:\\bogusfolder/foo.txt" ) ;
        var fso = new ActiveXObject( "Scripting.FileSystemObject" ) ;
        if ( !fso.FileExists( strBogusPath ) ) {
                Application.LogMessage( strBogusPath + " does not exist" ) ;
        }               
} else {
        Application.LogMessage( XSIUtils.ResolvePath("/var/tmp\\foo.txt") );
}
// Expected results on Windows:
//INFO : C:\users\<USERNAME>\Softimage\<VERSION>\Application\Plugins
//INFO : C:\bogusfolder\foo.txt does not exist

2. VBScript Example

'
'       This example demonstrates how to resolve an environmental variable
'       that is part of a path.
'
if ( Platform = "Win32" ) then
        Application.LogMessage XSIUtils.ResolvePath("$USERPROFILE/foo.txt") 
end if
' Result on Windows will look similar to this:
'INFO C:\Documents and Settings\<name>\foo.txt

See Also

XSIUtils.Environment XSIApplication.Platform XSIUtils.EnsureFolderExists XSIUtils.BuildPath