diff --git a/source/engine/io/fileutils.js b/source/engine/io/fileutils.js index 815134d..4b9a1bd 100644 --- a/source/engine/io/fileutils.js +++ b/source/engine/io/fileutils.js @@ -20,18 +20,21 @@ export const FileFormat = export function GetFileName (filePath) { - let firstSeparator = filePath.lastIndexOf ('/'); - if (firstSeparator === -1) { - firstSeparator = filePath.lastIndexOf ('\\'); - } let fileName = filePath; - if (firstSeparator !== -1) { - fileName = filePath.substring (firstSeparator + 1); - } + let firstParamIndex = fileName.indexOf ('?'); if (firstParamIndex !== -1) { fileName = fileName.substring (0, firstParamIndex); } + + let firstSeparator = fileName.lastIndexOf ('/'); + if (firstSeparator === -1) { + firstSeparator = fileName.lastIndexOf ('\\'); + } + if (firstSeparator !== -1) { + fileName = fileName.substring (firstSeparator + 1); + } + return decodeURI (fileName); } diff --git a/test/tests/fileutils_test.js b/test/tests/fileutils_test.js index 0f6151c..d66d417 100644 --- a/test/tests/fileutils_test.js +++ b/test/tests/fileutils_test.js @@ -30,6 +30,8 @@ describe ('File Utils', function () { assert.strictEqual (OV.GetFileName ('folder\\file'), 'file'); assert.strictEqual (OV.GetFileName ('folder\\file.obj'), 'file.obj'); assert.strictEqual (OV.GetFileName ('folder\\file.OBJ'), 'file.OBJ'); + assert.strictEqual (OV.GetFileName ('file.obj?a=b&c=d'), 'file.obj'); + assert.strictEqual (OV.GetFileName ('file.obj?param=a/b/c'), 'file.obj'); }); it ('Read Lines', function () {