最後のパスを削除
deletingLastPathComponent
/hoge/bar/fuga.dart
↓
/hoge/bar/
になる。最後に'/'はあるっぽい
最後にパス追加
appendingPathComponent
/hoge/bar/fuga.dart
↓"bar.dart"
/hoge/bar/fuga.dart/bar.dart
になる。
/
はよしなに
これのDart版がほしい
import 'package:path/path.dart' as _path; extension StringExtension on String { // SwiftのdeletingLastPathComponent()的な処理 // 最後に/はない String deletingLastPathComponent() { return _path.dirname(this); } // SwiftのappendingPathComponent()的な処理 String appendingPathComponent(String additionalPath) { // 元のパスから最後の/消す final origin = stripTrailingSlash(); // 追加用は先頭に/つけておく final modifiedAdditionalPath = additionalPath.ensureLeadingSlash(); return '$origin$modifiedAdditionalPath'; } // 先頭に/つけておく String ensureLeadingSlash() { if (!startsWith('/')) { return '/$this'; } return this; } // 最後の/消しておく String stripTrailingSlash() { if (endsWith('/')) { return substring(0, length - 1); } return this; } }