- std::size_t found = filename.find_last_of("/\\");
- dirname.push_back(filename.substr(0,found));
- dirname.push_back(filename.substr(found+1,found));
+ std::string path = itksys::SystemTools::GetFilenamePath(filename);
+ std::vector<std::string> pathComponents;
+ itksys::SystemTools::SplitPath(filename.c_str(), pathComponents);
+ std::string fileName = pathComponents.back();
+ if (path != "")
+ dirname.push_back(path);
+ dirname.push_back(fileName);