public FilenameComponents(string filename) {
this.filename = filename;
directory = Path.GetDirectoryName(filename);
basename = Path.GetFileName(filename);
extension = Path.GetExtension(basename);
basenameNoExtension =
basename.Substring(0, basename.Length - extension.Length);
}
}