mac-file-icon

0.0.7 • Public • Published

macIconForFile npm version

Get the native macOS icon for a specific file extension as a PNG image buffer.

Inspired and based on:

Retrieves icon, exactly the same way as Finder does it, including QuickLook preview generation in case if it's possible, just check out the example at the end of this page. My motivation to write this module was impossiblity to obtain file system's entry icon in Electron, there is simply no method to do that.

Installation

npm install mac-file-icon

Usage

var getIconForFile = require('mac-file-icon');
getIconForFile('/Users/', function(buffer) {
  console.info(buffer);
});

You can always convert Buffer into it's base64 representation:

var getIconForFile = require('mac-file-icon');
getIconForFile('/Users/', function(buffer) {
  console.info(buffer.toString('base64'));
});

In case if callback is ommited, Buffer will be returned in synchronous way:

var getIconForFile = require('mac-file-icon');
console.info(getIconForFile('/Users/'));

By default, icon size is set to 32x32, you can adjust it by passing additional argument:

var getIconForFile = require('mac-file-icon');
// icon size 64x64
getIconForFile('/Users/', function(buffer) {
  console.info(buffer);
}, 64);

Works same way in synchronous calls:

var getIconForFile = require('mac-file-icon');
// icon size 64x64
console.info(getIconForFile('/Users/', 64));

Build it yourself

cd macIconForFile
npm install
node-gyp configure
node-gyp build

However I'm not sure if last two statements are required...

Example

You can try out an example included into the package, that uses Express, Histone and macIconForFile to generate file listing in the browser.

npm install mac-file-icon
cd node_modules/mac-file-icon/example
npm install
node index.js

Then open your web browser and navigate to http://localhost:8080/ (in case if this port number is taken, edit index.js and set another one), you will see something like this:

Show case of how it looks like

Package Sidebar

Install

npm i mac-file-icon

Weekly Downloads

6

Version

0.0.7

License

MIT

Last publish

Collaborators

  • angrycoding