 
     info = archive.getFileInfo filePath
     throw createNotFoundError(asarPath, filePath) unless info
+    return new Buffer(0) if info.size is 0
 
     if info.unpacked
       realPath = archive.copyFileOut filePath

    flag = options.flag || 'r'
    encoding = options.encoding

    bufferLength = info.size || kEmptyBufferLength
    buffer = new Buffer(bufferLength)

    if info.size
      fd = openSync archive.path, flag
      try
        bytesRead = fs.readSync fd, buffer, 0, info.size, info.offset
      catch e
        throw e
      finally
        fs.closeSync fd
      if encoding then buffer.toString encoding, 0, bytesRead else buffer
    else
      buffer

  readdir = fs.readdir
  fs.readdir = (p, callback) ->


    info = archive.getFileInfo filePath
    return callback createNotFoundError(asarPath, filePath) unless info
    return callback null, new Buffer(0) if info.size is 0

    if info.unpacked
      realPath = archive.copyFileOut filePath
