Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
Path.AddPathComponent
Adds a new path component.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
Path | 6.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
Path | The native file path. | "/Users/cs/Desktop" |
Component... | The new path component. | "Hello" |
Result
Returns path or error.
Description
Adds a new path component.The path provided as parameter does not need to end with a slash or backslash.
This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.
This function takes variable number of parameters. Pass as much parameters as needed separated by the semicolon in FileMaker.
Please repeat Component parameter as often as you need.
Examples
Adds a path component to a path:
MBS( "Path.AddPathComponent"; "/Users/cs/Desktop"; "Hello" )
Adds a file name:
MBS( "Path.AddPathComponent"; "/Users/cs/Desktop/"; "test.txt" )
Adds a file path on Windows:
MBS( "Path.AddPathComponent"; "c:\\Test"; "test.txt" )
Get file name from container and add to folder path:
Set Variable [$name; Value:GetAsText ( Container Batch Export::Test1 )]
Set Variable [$name; Value:GetValue($name; 1)]
Set Variable [$name; Value:MBS( "Path.LastPathComponent"; $name )]
Set Variable [$dpath; Value:MBS( "Path.AddPathComponent"; $FolderPath; $name )]
Create folder on Desktop:
Set Variable [$folder; Value:MBS( "Folders.UserDesktop" )]
If [IsEmpty(Container Export::Name)]
Set Field [Container Export::Name; "Record " & Get(RecordID)]
End If
Set Variable [$path; Value:MBS( "Path.AddPathComponent"; $folder; Container Export::Name )]
Set Variable [$r; Value:MBS("Files.CreateDirectory"; $path)]
Write container to temp file and launch:
# get temp folder
Set Variable [$TempFolder; Value:MBS( "Folders.SystemTemporary" )]
# and file name from container
Set Variable [$name; Value:MBS( "Path.LastPathComponent"; test::myContainer )]
# add name to folder path
Set Variable [$TempPath; Value:MBS( "Path.AddPathComponent"; $TempFolder; $name )]
# now write temp file
Set Variable [$r; Value:MBS( "Files.WriteFile"; test::myContainer; $TempPath)]
# and launch file
Set Variable [$r; Value:MBS( "Files.LaunchFile"; $TempPath)]
Add multiple path componennts:
MBS( "Path.AddPathComponent"; "/Users/cs/Desktop"; "Hello"; "World"; "test" )
Example result: /Users/cs/Desktop/Hello/World/test
Export a container to desktop:
# get path stored in the container field
Set Variable [ $ContainerPath ; Value: GetAsText ( Contacts::Photo Container ) ]
# get the file name portion
Set Variable [ $ContainerName ; Value: MBS( "Path.LastPathComponent"; $ContainerPath ) ]
# take a folder on the computer, e.g. desktop
Set Variable [ $DesktopFolder ; Value: MBS( "Folders.UserDesktop" ) ]
# build path with file name on that folder
Set Variable [ $FilePath ; Value: MBS( "Path.AddPathComponent"; $DesktopFolder; $ContainerName ) ]
# and export the content of container to that path
Set Variable [ $r ; Value: MBS( "Container.WriteFile"; Contacts::Photo Container; $FilePath ) ]
Import all files in a folder:
# list files in a folder
Set Variable [ $r ; Value: MBS("Files.List"; $FolderPath) ]
# loop over the files
Set Variable [ $count ; Value: ValueCount ( $r ) ]
Set Variable [ $index ; Value: 0 ]
If [ $count>0 ]
Loop
# build path
Set Variable [$fileName; GetValue ( $r ; $index+1 )]
Set Variable [$filePath; Value: MBS( "Path.AddPathComponent"; $FolderPath; $fileName )]
Set Variable [$fileData; Value: MBS("Container.ReadFile"; $filePath)]
# create record for new file
New Record/Request
Set Field [MyData::Container; $fileData ]
Set Field [MyData::Name; $fileName ]
Commit Records/Requests [ With dialog: Off ]
Set Variable [ $index ; Value: $index + 1 ]
Exit Loop If [ $index = $count ]
End Loop
End If
See also
- Path.LastPathComponent
- Text.ReadTextFile
- Trace
- Trace.SetWithTimes
- WebView.Create
- WordFile.AppendTableRow
- WordFile.ReplaceTag
- XL.Book.DeleteSheet
- XL.LoadBook
- XL.Sheet.RemoveRow
Release notes
- Version 9.4
- Changed Path.AddPathComponent to accept multiple parameters.
Example Databases
- Barcode/Barcode Generation
- DynaPDF/Invoice/Invoice
- DynaPDF/Shrink PDF pages
- Files/FileOperation
- GraphicsMagick/Create Multi Tiff
- Mac and iOS/PDFKit/Pictures to PDF
- Shell/RunTask/Run Shell Script on Mac
- WebViewer/Custom WebView
- Win Only/WIA Scan
- WordFile/WordFile
Blog Entries
- Printing a WebViewer in FileMaker
- MBS Plugin Advent calendar: 12 - Files
- MBS Plugin Advent calendar: 7 - Paths
- MBS Plugin Advent calendar: 3 - BinaryFile
- Tips and tricks with MBS
- How to use Trace
- New in MBS FileMaker Plugin 13.1
- Build archives on the fly
- Convert Office Files in FileMaker
- Recursive Folder Copy Script
FileMaker Magazin
This function is free to use.
Created 30th November 2015, last changed 20th February 2024
PageSetupDialog.SetScalingFactor - Path.FileMakerPathToNativePath