# Set and Get System Files Example (C#)

This example shows how to set and get the paths and file names of DraftSight system files.

//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this example into the C# IDE.
// 3. Add a reference to:
// install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll
// 4. Add references to System and System.Windows.Forms.
// 5. Start DraftSight.
// 6. Open the Immediate window.
// 7. Press F5 to debug the project.
//
// Postconditions:
// 1. The paths to the DraftSight support and font files are set.
// 2. The paths and names of the DraftSight system files are printed
// to the Immediate window.
//----------------------------------------------------------------

    using DraftSight.Interop.dsAutomation;
    using System;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
    using System.Diagnostics;

    static class Module1
    {
        public static void Main()
    	{
    		DraftSight.Interop.dsAutomation.Application dsApp;
    		SystemFiles dsSystemFiles = default(SystemFiles);
    		string[] setFontPaths = new string[2];
    		string[] setSupportPaths = new string[3];
    		object[] getFontPaths = null;
    		object[] getSupportPaths = null;
    		int i = 0;

    		//Connect to DraftSight
            dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");

    		//Abort any command currently running in DraftSight
    		//to avoid nested commands
    		dsApp.AbortRunningCommand();

    		//Get system files
    		dsSystemFiles = dsApp.GetSystemFiles();

    		//Set system files
    		setFontPaths[0] = "C:\\Dassault Systemes\\ProgramData\\DraftSight\\TextFonts";
    		setFontPaths[1] = "C:\\Dassault Systemes\\ProgramData\\DraftSight\\TablesFonts";
    		dsSystemFiles.FontsPaths = setFontPaths;

    		setSupportPaths[0] = "C:\\Dassault Systemes\\ProgramData\\DraftSight\\SupportPathAddins";
    		setSupportPaths[1] = "C:\\Dassault Systemes\\ProgramData\\DraftSight\\SupportPathCustomFiles";
    		setSupportPaths[2] = "C:\\Dassault Systemes\\ProgramData\\DraftSight\\DrawingFiles";
    		dsSystemFiles.SupportPaths = setSupportPaths;

    		Debug.Print("System files:");
    		Debug.Print("  Help file:                            " + dsSystemFiles.HelpFile);
    		Debug.Print("  Logfile path:                         " + dsSystemFiles.LogFilePath);
    		Debug.Print("  Dictionary file for SpellCheck:       " + dsSystemFiles.MainDictionaryFile);
    		Debug.Print("  Custom dictionary file:               " + dsSystemFiles.CustomDictionaryFile);
    		Debug.Print("  Location for temporary drawing files: " + dsSystemFiles.TempPath);

    		getFontPaths = dsSystemFiles.FontsPaths;
    		Debug.Print("  Font paths: ");
    		for (i = 0; i < getFontPaths.Length; i++) {
    			Debug.Print("                                        " + getFontPaths[i]);
    		}

    		getSupportPaths = dsSystemFiles.SupportPaths;
    		Debug.Print("  Support paths: ");
    		for (i = 0; i < getSupportPaths.Length; i++) {
    			Debug.Print("                                        " + getSupportPaths[i]);
    		}
    	}
    }