add multi platform file open