@@ -532,3 +532,180 @@ The file is removed from the filesystem if the operation is successful. If the o
532532``` fortran
533533{!example/system/example_delete_file.f90!}
534534```
535+
536+ ## ` joinpath ` - Joins the provided paths according to the OS
537+
538+ ### Status
539+
540+ Experimental
541+
542+ ### Description
543+
544+ This interface joins the paths provided to it according to the platform specific path-separator.
545+ i.e ` \ ` for windows and ` / ` for others
546+
547+ ### Syntax
548+
549+ ` res = [[stdlib_system(module):joinpath(interface)]] (p1, p2) `
550+ ` res = [[stdlib_system(module):joinpath(interface)]] (p) `
551+
552+ ### Class
553+ Pure function
554+
555+ ### Arguments
556+
557+ ` p1, p2 ` : Shall be a character string. It is an ` intent(in) ` argument.
558+ or
559+ ` p ` : Shall be a list of character strings. ` intent(in) ` argument.
560+
561+ ### Return values
562+
563+ The resultant path.
564+
565+ ### Example
566+
567+ ``` fortran
568+ {!example/system/example_path_1.f90!}
569+ ```
570+
571+ ## ` operator(/) `
572+
573+ Join two paths according to the platform specific path-separator,
574+ Behavior exactly similar to ` joinpath `
575+
576+ ### Status
577+
578+ Experimental
579+
580+ ### Syntax
581+
582+ ` p = lval + rval `
583+
584+ ### Class
585+
586+ Pure function.
587+
588+ ### Arguments
589+
590+ ` lval ` : A character string, ` intent(in) ` .
591+ ` rval ` : A character string, ` intent(in) ` .
592+
593+ ### Result value
594+
595+ The result is an ` allocatable ` character string
596+
597+ #### Example
598+
599+ ``` fortran
600+ {!example/system/example_path_1.f90!}
601+ ```
602+
603+ ## ` splitpath ` - splits a path immediately following the last separator
604+
605+ ### Status
606+
607+ Experimental
608+
609+ ### Description
610+
611+ This subroutine splits a path immediately following the last separator after removing the trailing separators
612+ splitting it into most of the times a directory and a file name.
613+
614+ ### Syntax
615+
616+ ` call [[stdlib_system(module):splitpath(interface)]] (p, head, tail) `
617+
618+ ### Class
619+ Subroutine
620+
621+ ### Arguments
622+
623+ ` p ` : A character string containing the path to be split. ` intent(in) `
624+ ` head ` : The first part of the path. ` allocatable, intent(out) `
625+ ` tail ` : The rest part of the path. ` allocatable, intent(out) `
626+
627+ ### Behavior
628+
629+ - If ` p ` is empty, ` head ` is set to ` . ` and ` tail ` is empty
630+ - If ` p ` consists entirely of path-separators. ` head ` is set to the path-separator and ` tail ` is empty
631+ - ` head ` ends in a path-separator iff and only if ` p ` appears to be a root directory or child of one
632+
633+ ### Return values
634+
635+ The splitted path. ` head ` and ` tail ` .
636+
637+ ### Example
638+
639+ ``` fortran
640+ {!example/system/example_path_1.f90!}
641+ ```
642+
643+ ## ` basename ` - The last part of a path
644+
645+ ### Status
646+
647+ Experimental
648+
649+ ### Description
650+
651+ This function returns the last part of a path after removing trailing path separators.
652+
653+ ### Syntax
654+
655+ ` res = [[stdlib_system(module):basename(interface)]] (p) `
656+
657+ ### Class
658+ Function
659+
660+ ### Arguments
661+
662+ ` p ` : the path, a character string, ` intent(in) `
663+
664+ ### Behavior
665+
666+ - The ` tail ` of ` stdlib_system(module):splitpath(interface) ` is exactly what is returned. Same Behavior.
667+
668+ ### Return values
669+
670+ A character string.
671+
672+ ### Example
673+
674+ ``` fortran
675+ {!example/system/example_path_1.f90!}
676+ ```
677+
678+ ## ` dirname ` - Everything except the last part of the path
679+
680+ ### Status
681+
682+ Experimental
683+
684+ ### Description
685+
686+ This function returns everything except the last part of a path.
687+
688+ ### Syntax
689+
690+ ` res = [[stdlib_system(module):dirname(interface)]] (p) `
691+
692+ ### Class
693+ Function
694+
695+ ### Arguments
696+
697+ ` p ` : the path, a character string, ` intent(in) `
698+
699+ ### Behavior
700+
701+ - The ` head ` of ` stdlib_system(module):splitpath(interface) ` is exactly what is returned. Same Behavior.
702+
703+ ### Return values
704+
705+ A character string.
706+
707+ ### Example
708+
709+ ``` fortran
710+ {!example/system/example_path_1.f90!}
711+ ```
0 commit comments