- ifstream f (file_name.c_str ());
- if (!f.good ()) {
- return shared_ptr<Reader> ();
- }
-
- if (ends_with (file_name, ".xml") || ends_with (file_name, ".XML")) {
- return shared_ptr<Reader> (new DCPReader (f));
- }
+ string ext = file_name.extension().string();
+ transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
+
+ if (ext == ".xml") {
+ return shared_ptr<Reader> (new DCPReader (file_name));
+ }