XSIUtils.GetLocationType
 
 
 

XSIUtils.GetLocationType

Introduced

v5.0

Description

Returns the value from the siInstallationPath enum that best describes where the specified file (complete path) is located. It is not necessary for the path to point to an existing file.

A possible use of this method is to determine if a file is stored locally in the user's settings, or comes from a workgroup location.

C# Syntax

Int32 XSIUtils.GetLocationType( String in_pathtotest );

Scripting Syntax

oReturn = XSIUtils.GetLocationType( path );

Return Value

siInstallationPath

Parameters

Parameter Type Description
path String Complete path to a file or directory. The location does not need to exist.

Examples

JScript Example

/*
        This example demonstrates how to use the GetLocationType to see find out whether the
        file originated in the project path.
*/
var userpath = Application.InstallationPath( siUserPath ) ;
userpath = ConvertInstallationPathToString( XSIUtils.GetLocationType(userpath) );
Application.LogMessage( userpath ) ;
// Any file, directory below the user path (even if it doesn't exist yet) will
// be identified as being part of the user path
userpath += "/Application/Plugins/foo.vbs" ;
// Adjust slashes in case we are running on Windows
userpath = XSIUtils.ResolvePath( userpath ) ;
userpath = ConvertInstallationPathToString( XSIUtils.GetLocationType(userpath) );
Application.LogMessage( userpath ) ;
// Demonstrate how you could easily test if a scene file is part of the
// current project
var projpath = Application.InstallationPath( siProjectPath ) ;
projpath += "/Scenes/somescene.scn" ;
projpath = XSIUtils.ResolvePath( projpath ) ;
if ( XSIUtils.GetLocationType(projpath) == siProjectPath ) {
        Application.LogMessage( "This scene is part of the current project" ) ;
}
// Expected results:
//INFO : siUserPath
//INFO : siProjectPath
//INFO : This scene is part of the current project
// Convenience function
function ConvertInstallationPathToString( in_location )
{
        switch ( in_location ) {
                case siProjectPath :
                        return "siProjectPath" ;
                case siUserPath :
                        return "siUserPath" ;   
                case siWorkgroupPath :
                        return "siWorkgroupPath" ;      
                case siFactoryPath :
                        return "siFactoryPath" ;        
                case siAddonPath :
                        return "siAddonPath" ;  
                case siUserAddonPath :
                        return "siUserAddonPath" ;      
                case siWorkgroupAddonPath :
                        return "siWorkgroupAddonPath" ; 
                case siCustomPath :
                        return "siCustomPath" ; 
                default :
                        return "siUnknownPath" ;        
        }
}

See Also

XSIApplication.InstallationPath SIObject.Origin