fileName property

String get fileName

Last part of a path or URL, without ?query or #hash. "https://x.com/a/b.pdf?x=1" → "b.pdf"

Implementation

String get fileName {
  if (trim().isEmpty) return "";
  String url = this;
  final int endIndex = url.indexOf(RegExp("[?#]"));
  if (endIndex >= 0) url = url.substring(0, endIndex);
  url = url.replaceAll(RegExp(r"[/\\]+$"), "");
  final int lastSlash = max(url.lastIndexOf("/"), url.lastIndexOf(r"\"));
  final String name = lastSlash >= 0 ? url.substring(lastSlash + 1) : url;
  try {
    return Uri.decodeComponent(name);
  } catch (_) {
    return name;
  }
}