Path controls where newly created media files are saved on the computer. The Path value is a template. It can contain normal folder and filename text plus tokens that are replaced when the file is saved.

For example, c:\images\@GCT4 saves files under c:\images and uses a four-digit global counter for the filename.

Do not type the file extension in the Path field. The app appends the extension for the media type being saved.

Page controls

  • Path is the editable template for the destination folder and filename.
  • Select folder inserts a folder path from the Windows folder picker.
  • Preview shows an example of the next resolved path, including a sample extension.
  • Global counter and Profile counter show the current counter values used by counter tokens.
  • Set beside a counter opens a small editor. Enter the new value, then use Apply or Cancel.
  • Examples shows or hides useful template patterns grouped by token type.
  • Select an example template and press Ctrl+C when you want to copy it, then paste it into Path.
  • Nikon Z SDK v2 staging folder is where Nikon first writes originals for Unified Z SDK v2 computer-side still capture.

The preview updates as you edit the Path. If invalid path or filename characters are found, or if the resolved path contains a reserved Windows name, the preview replaces the unsafe part with underscores and shows a warning.

Quick setup

  1. Open Path from the main navigation.
  2. Pick a folder or type a folder path.
  3. Add a filename pattern after the folder.
  4. Use a counter or timestamp token so each capture can produce a unique filename.
  5. Check the preview.
  6. Save the profile when the Path should be reused later.

Start simple. A good first template is:

c:\images\@GCT4

This uses the global counter as the filename. After that works, add folders, timestamps, ASK values, or extension folders as needed.

Examples

Use the examples on the Path page as starting points. Copy one, paste it into Path, edit it for your folder names, and watch the preview.

Counter examples

  • c:\images\@GCT4 uses a four-digit global counter as the filename.
  • c:\images\@PCT3 uses a three-digit profile counter as the filename.
  • c:\images\captures\img-@GCT5 prefixes a five-digit global counter with img-.
  • c:\images\profiles\@PCT4 uses a four-digit profile counter in a profile-specific folder.
  • c:\images\global-@GCT3\profile-@PCT3 uses both counters in folder names.

Date and folder examples

  • c:\images\flowers\@D1 uses a timestamp accurate to the millisecond.
  • c:\images\flowers\@D3\@D1 creates a folder for each day and a timestamp filename.
  • c:\images\@YYYY\@MM\@DD\@GCT4 creates year, month, and day folders with a counter filename.
  • c:\images\@YYYY-@MM\@D1 creates a month folder and a timestamp filename.
  • c:\images\utc\@UYYYY\@UMM\@UDD\@UD1 uses UTC date folders and a UTC timestamp filename.
  • c:\images\runs\@GRP\@GCT4 puts files from the same run under one run timestamp folder.
  • c:\images\@D3\@HH@NN@SS-@ZZ creates a daily folder and a time-based filename.
  • c:\images\@D2\@YYYY-@MM-@DD-@HH@NN@SS-@ZZ creates a timestamp folder and a custom date/time filename.

Extension examples

  • c:\images\flowers\@EXT1\pic-@GCT4 creates extension-based folders and filenames such as pic-0001.
  • c:\images\@EXT1\@D1 stores each media type in a lower-case extension folder with a timestamp filename.
  • c:\images\@EXT2\@BFN stores each media type in an upper-case extension folder and keeps the body filename.

Body filename examples

  • c:\images\@BFN uses the filename generated by the camera body, without its extension.
  • c:\images\@D3\@BFN puts body-generated filenames into a daily folder.
  • c:\images\@EXT1\body-@BFN stores body-generated filenames by media type and adds a body- prefix.

ASK and scanner examples

  • c:\images\product\@ASK1#1:Client#\@SCASK1#*2:SKU!#\@GCT4 uses a typed client and required scanned SKU for product photography, then submits from SKU.
  • c:\images\ecommerce\@ASK1#1:Brand#\@SCASK1#*2:Style#\@ASK2#3:Color#\@ASK3#4:Angle!#\@GCT4 captures catalog shots by brand, scanned style, color, and final angle.
  • c:\images\real-estate\@ASK1#1:Property#\@ASK2#2:Room#\@ASK3#3:View#\@GCT4 groups real estate images by property, room, and view.
  • c:\images\museum\@SCASK1#*1:Accession#\@ASK1#2:Object#\@ASK2#3:Side!#\@GCT4 uses a required accession barcode for museum object photography.
  • c:\images\lab\@SCASK1#*1:Sample#\@ASK1#2:Test#\@ASK2#3:Stage!#\@GCT4 ties laboratory images to a scanned sample, test, and stage.
  • c:\images\lab\plates\@SCASK1#*1:Plate#\@ASK1#2:Well#\@ASK2#3:Channel!#\@GCT4 organizes plate imaging by scanned plate, well, and channel.
  • c:\images\specimens\@ASK1#1:Project#\@SCASK1#*2:Specimen#\@ASK2#3:Tray#\@ASK3#4:Position!#\@GCT4 documents specimen trays with a required specimen scan.
  • c:\images\forensics\@SCASK1#*1:Case#\@SCASK2#*2:Evidence#\@ASK1#3:View!#\@GCT4 uses required scanned case and evidence identifiers.
  • c:\images\forensics\@ASK1#*1:Case#\@ASK2#2:Scene#\@ASK3#3:Room#\@ASK4#4:Detail!#\@GCT4 organizes forensic scene photos by typed case, scene, room, and detail.
  • c:\images\custody\@SCASK1#*1:Case#\@SCASK2#*2:Bag#\@SCASK3#*3:Item!#\@GCT4 captures chain-of-custody item photos from scanned case, bag, and item codes.
  • c:\images\school\@ASK1#1:School#\@ASK2#2:Grade#\@SCASK1#*3:Student!#\@GCT4 uses a required scanned student id for school portraits.
  • c:\images\school-projects\@ASK1#1:School#\@ASK2#2:Class#\@ASK3#3:Project#\@SCASK1#4:Student#\@GCT4 documents classroom projects with an optional scanned student id.
  • c:\images\scan-service\@ASK1#1:Client#\@SCASK1#*2:Order#\@ASK2#3:Album#\@GCT4 organizes old photo scanning by client, required scanned order, and album.
  • c:\images\slides\@SCASK1#*1:Order#\@ASK1#2:Box#\@ASK2#3:Slot!#\@GCT4 tracks slide scanning by required order scan, box, and slot.
  • c:\images\archive\@ASK1#1:Family#\@ASK2#&2:Year#\@ASK3#3:Event#\@ASK4#4:Person!#\@GCT4 supports family archive restoration, with a visible placeholder when the year is unknown.

Tokens

A token is a placeholder in a folder or filename. Tokens start with @ and are case-insensitive.

Tokens are replaced when the preview is calculated and when a file is saved. Use tokens when the saved path should include changing data such as counters, date/time values, scanner values, or body-generated filenames.

Filenames should be unique in their folder. If a generated filename already exists, the app adds a duplicate suffix such as (2). Use counters, timestamps, or body-generated filenames when you want to avoid duplicates.

Counter tokens

Counter tokens create filenames that increase over time. The number at the end of the token controls the minimum number of digits.

  • @GCT1 through @GCT6 use the global counter stored in app settings.
  • @PCT1 through @PCT6 use the profile counter stored in the current profile.

For example:

  • @GCT1 can produce 1.
  • @GCT4 can produce 0001.
  • @PCT3 can produce 001.

The counters advance after a file is saved. When saving is complete, the app updates the counter values used by the next preview.

Date and time tokens

Local time tokens use the computer's local time.

  • @D1 is YYMMDDHHNNSSZZZ, including milliseconds.
  • @D2 is YYMMDDHHNNSS.
  • @D3 is YYMMDD.
  • @D4 is YYMM.
  • @YYYY is the four-digit year.
  • @YY is the two-digit year.
  • @MM is the month.
  • @DD is the day.
  • @HH is the hour in 24-hour time.
  • @NN is the minute.
  • @SS is the second.
  • @ZZ is the millisecond.
  • @GRP is the timestamp for the start of a multi-image run.

UTC tokens use Coordinated Universal Time. They match the local token names with a U prefix:

  • @UD1, @UD2, @UD3, and @UD4
  • @UYYYY, @UYY, @UMM, @UDD
  • @UHH, @UNN, @USS, @UZZ
  • @UGRP

Use @D1 or @UD1 when you need a timestamp filename that is very unlikely to repeat.

ASK tokens

ASK tokens create data-entry fields. When the Path contains an ASK token, the app can ask you for a value before capture or save work uses the path. For the full ASK workflow and syntax reference, open the ASK help page.

Basic ASK tokens are:

  • @ASK1#Title# through @ASK9#Title#

Scanner ASK tokens are:

  • @SCASK1#Title# through @SCASK9#Title#

The text between # characters becomes the field title. For example:

c:\images\@ASK1#Country#\@SCASK1#City#\@GCT4

This creates fields named Country and City, then uses their values as folder names.

Use @ASK when the value should be typed. Use @SCASK when the value is commonly supplied by a scanner. SCASK fields can still be typed manually.

ASK descriptor markers

The text between the # characters can include small markers before or after the title:

  • * at the start marks the field as required.
  • & at the start keeps a visible placeholder in the resolved path when the field is empty.
  • A number and colon, such as 1:, sets the data-entry order.
  • ! at the end makes field completion submit the configured app action.

For example:

  • @SCASK1#*1:ID# creates a required scanner-capable field named ID and places it first.
  • @ASK2#&2:Province# creates an optional Province field and shows ask2 in the path while empty.
  • @ASK3#3:City!# creates a City field and submits the configured app action when the field is completed.

If an optional ASK value is empty and has no & marker, it collapses to empty. When the token is the whole folder segment, Path removes the empty segment so the resolved path does not keep doubled backslashes.

Required fields block ASK submit while they are empty or invalid. When submit is blocked, focus moves to the first field that needs attention.

Extension tokens

Extension tokens let the path vary by output file type.

  • @EXT1 is the media extension in lower case.
  • @EXT2 is the media extension in upper case.

For example:

c:\images\@EXT1\pic-@GCT4

This can create separate folders such as jpg, nef, or mov, depending on the saved media type.

Body-generated filename token

@BFN uses the filename generated by the camera body without its extension.

For example, if the body-generated name is DSC_0032.JPG, @BFN resolves to DSC_0032.

Body-generated filenames are only available when the provider supplies them. For camera workflows, this usually depends on the capture and destination mode. If the provider does not supply a body-generated filename, use a counter or timestamp token instead.

Invalid paths and reserved names

Windows paths cannot contain every character. The preview replaces invalid path or filename characters with underscores.

For example:

c:\images/@D1

The forward slash is not valid in a Windows path in that position, so the preview replaces it with _.

Windows also reserves some folder and filename segments for device names. Do not use these names as a whole folder or filename segment:

  • CON
  • PRN
  • AUX
  • NUL
  • COM1 through COM9
  • LPT1 through LPT9

These names are unsafe even when they have an extension. For example, CON.jpg is still treated as a reserved name. Trailing periods or spaces at the end of a folder or filename segment are also unsafe.

Path checks the resolved path after tokens are replaced. This means an @ASK or @SCASK value can make the path invalid if the entered or scanned value is one of the reserved names. For example, this template is valid by itself:

c:\images\@ASK1#Client#\@GCT4

But if the Client value is COM1, the resolved path is invalid. The Path page warning remains visible until the resolved path is safe.

The Path can include folders that do not exist yet. The app creates needed folders when saving the file.

If the selected capture destination saves to the computer, such as Computer or Card + Computer, the app blocks capture before the camera is triggered when the resolved Path is invalid. It also shows an error alert explaining that the Path must be fixed before shooting.

If the selected destination is Card only, the app can still capture even when the Path page shows a warning, because no computer-side final Path save is expected. Fix the Path before switching back to a computer-side destination.

Nikon Z SDK v2 staging folder

Unified Z SDK v2 still capture uses a staging folder before files reach the final Path. Nikon writes the original file or files into a per-capture staging folder, then ControlMyNikon audits the capture and copies those originals to the final Path.

This keeps Path tokens, counters, duplicate-safe names, and final destination behavior consistent with the rest of the app. It also keeps the Nikon-produced staged originals for recovery.

Use a local folder with enough free space for your session. Do not use the same folder as your final Path. ControlMyNikon does not automatically delete staged originals, so clean the staging folder manually after you have confirmed your final files.

Profiles

The Path and profile counter are profile data. Save the current profile when you want the current Path to load again later.

The global counter is stored in app settings so it can continue across profiles. The profile counter is stored with the selected profile.

Use the global counter when all profiles should share one numbering sequence. Use the profile counter when each profile should have its own numbering sequence.

Troubleshooting

If the preview does not look right:

  • Check that folder separators use backslashes.
  • Check that the Path does not include a file extension.
  • Check that no folder or filename segment resolves to a reserved Windows name such as CON, PRN, AUX, NUL, COM1 through COM9, or LPT1 through LPT9.
  • Check token spelling.
  • Copy an example and edit from a working template.
  • Replace complex templates with c:\images\@GCT4, confirm it previews correctly, then add tokens back one at a time.

If capture is blocked by an invalid Path:

  • Check the warning under the preview.
  • Check any @ASK or @SCASK values that are used as folder or filename segments.
  • Change reserved names such as COM1 to a normal value such as COM10, Client1, or another project-specific name.
  • If you intentionally want to save only on the camera card, set the camera destination to Card.

If files are saved with duplicate suffixes:

  • Add a counter token.
  • Use @D1 or another high-resolution timestamp token.
  • Use @BFN only when the provider supplies a unique filename.

If ASK fields do not appear:

  • Confirm the token uses the @ASK1#Title# or @SCASK1#Title# form.
  • Make sure both # characters are present.
  • Use a unique ASK number for each field.

If scanner data does not go where expected:

  • Use @SCASK tokens for fields that should receive scanner values.
  • Check scanner setup.
  • Confirm the scanner is sending the expected value before capture.

Related setup

Use ASK for a complete explanation of ASK fields, marker syntax, required values, scanner-capable fields, and submit fields. Use Profiles to save and reload Path templates. Use Scanner when barcode values should fill @SCASK fields.