A tiny path helper: join('/') glues a list of segments into one string, and split('/') reverses it. Taking segments.last pulls the final piece, which is the file name in a typical path.

Program

Play the program to join three segments into a path and pull the file name back out.

path_join_lite.dart
Replay: real traced execution (multi-file project)
void main() {
  var parts = ['logs', '2026', 'app.txt'];
  var path = parts.join('/');
  var segments = path.split('/');
  var name = segments.last;
  print('$path | $name');
}
  1. parts ← [logs, 2026, app.txt]

    1void main() {2  var parts = ['logs', '2026', 'app.txt'];3  var path = parts.join('/');
    values this step[logs, 2026, app.txt]parts
  2. path ← logs/2026/app.txt

    2var parts = ['logs', '2026', 'app.txt'];3var path = parts.join('/');4var segments = path.split('/');
    values this steplogs/2026/app.txtpath[logs, 2026, app.txt]parts
  3. segments ← [logs, 2026, app.txt]

    3var path = parts.join('/');4var segments = path.split('/');5var name = segments.last;
    values this step[logs, 2026, app.txt]segmentslogs/2026/app.txtpath
  4. name ← app.txt

    4var segments = path.split('/');5var name = segments.last;6print('$path | $name');
    values this stepapp.txtname[logs, 2026, app.txt]segments
  5. print('$path | $name');

    5  var name = segments.last;6  print('$path | $name');7}
    outputlogs/2026/app.txt | app.txt
    values this steplogs/2026/app.txtpathapp.txtname
join `parts.join('/')` glues a list of segments into one path string.
split `path.split('/')` reverses the join, returning the original segments.
last `segments.last` returns the final element, which is the file name in a typical path.