         if entry.isFile
           entry.file (file) =>
             return if @options.ignoreHiddenFiles and file.name.substring(0, 1) is '.'
-            file.fullPath = "#{path}/#{file.name}"
-            @_addFile file
+            @_addFile file, path
         else if entry.isDirectory
           @_addFilesFromDirectory entry, "#{path}/#{entry.name}"
       return

      if file.previewElement
        file.previewElement.classList.remove "dz-file-preview"
        for thumbnailElement in file.previewElement.querySelectorAll("[data-dz-thumbnail]")
          thumbnailElement.alt = file.name
          thumbnailElement.src = dataUrl

        setTimeout (=> file.previewElement.classList.add "dz-image-preview"), 1

    else
      @options.accept.call this, file, done

  _addFile: (file, path=null) ->
    if !file.fullPath?
      file.fullPath = if !S.isBlank(path) then "#{path}/#{file.name}" else file.name

    matchingFiles = (f for f in @files when f.fullPath == file.fullPath)
    for matchingFile in matchingFiles
      @emit "debug", "Removing duplicate file '#{matchingFile.fullPath}'"
      @removeFile(matchingFile)

    if file.status != Dropzone.EXISTING
