How to get the file name from a full path using JavaScript?

前端 未结 18 1196
生来不讨喜
生来不讨喜 2020-11-22 11:01

Is there a way that I can get the last value (based on the \'\\\' symbol) from a full path?

Example:

C:\\Documents and Settings\\img\\recycled log.jpg<

18条回答
  •  旧时难觅i
    2020-11-22 11:55

    Little function to include in your project to determine the filename from a full path for Windows as well as GNU/Linux & UNIX absolute paths.

    /**
     * @param {String} path Absolute path
     * @return {String} File name
     * @todo argument type checking during runtime
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf
     * @example basename('/home/johndoe/github/my-package/webpack.config.js') // "webpack.config.js"
     * @example basename('C:\\Users\\johndoe\\github\\my-package\\webpack.config.js') // "webpack.config.js"
     */
    function basename(path) {
      let separator = '/'
    
      const windowsSeparator = '\\'
    
      if (path.includes(windowsSeparator)) {
        separator = windowsSeparator
      }
    
      return path.slice(path.lastIndexOf(separator) + 1)
    }
    

提交回复
热议问题