最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用JavaScript提取Sketch文件

IT培训 admin 3浏览 0评论

使用JavaScript提取Sketch文件

目的是提取.sketch文件的内容。

我有一个名为myfile.sketch的文件。在将文件扩展名重命名为myfile.zip并在Finder中提取相同内容时,我可以查看其中的文件。我尝试使用Node.js在服务器上执行相同的操作,将文件扩展名重命名为.zip。我无法提取文件,而是在文件中获得了一些ZIP文件。

var oldPath = __dirname+'/uploads/myfile.sketch',
newPath = __dirname+'/uploads/myfile.zip';

fs.rename(oldPath, newPath, function (err) {
console.log('rename callback ', err);
});

是否可以使用像JSzip这样的框架提取非ZIP文件?

回答如下:

由于.sketch文件本质上是一个ZIP文件,因此扩展名无关紧要。任何能够解压缩ZIP文件的工具都可以使用。

您可以使用file命令验证这一点:

$ file myfile.sketch
myfile.sketch: Zip archive data, at least v1.0 to extract

当您正在使用服务器时,没有什么可以阻止您使用操作系统的命令行工具,如unzip

像这样:

const util = require('util');
const exec = util.promisify(require('child_process').exec);

async function unzip() {
  const filename = 'myfile.sketch'
  const { stdout, stderr } = await exec('unzip ' + filename);
  console.log('stdout:', stdout);
  console.log('stderr:', stderr);
}

unzip();

使用JSZip也很简单:

var fs = require('fs');
var JSZip = require('jszip');

new JSZip.external.Promise(function (resolve, reject) {
  fs.readFile('myfile.sketch', function(err, data) {
    if (err) {
      reject(e);
    } else {
      resolve(data);
    }
  });
}).then(function (data) {
  return JSZip.loadAsync(data);
})

使用JavaScript提取Sketch文件

目的是提取.sketch文件的内容。

我有一个名为myfile.sketch的文件。在将文件扩展名重命名为myfile.zip并在Finder中提取相同内容时,我可以查看其中的文件。我尝试使用Node.js在服务器上执行相同的操作,将文件扩展名重命名为.zip。我无法提取文件,而是在文件中获得了一些ZIP文件。

var oldPath = __dirname+'/uploads/myfile.sketch',
newPath = __dirname+'/uploads/myfile.zip';

fs.rename(oldPath, newPath, function (err) {
console.log('rename callback ', err);
});

是否可以使用像JSzip这样的框架提取非ZIP文件?

回答如下:

由于.sketch文件本质上是一个ZIP文件,因此扩展名无关紧要。任何能够解压缩ZIP文件的工具都可以使用。

您可以使用file命令验证这一点:

$ file myfile.sketch
myfile.sketch: Zip archive data, at least v1.0 to extract

当您正在使用服务器时,没有什么可以阻止您使用操作系统的命令行工具,如unzip

像这样:

const util = require('util');
const exec = util.promisify(require('child_process').exec);

async function unzip() {
  const filename = 'myfile.sketch'
  const { stdout, stderr } = await exec('unzip ' + filename);
  console.log('stdout:', stdout);
  console.log('stderr:', stderr);
}

unzip();

使用JSZip也很简单:

var fs = require('fs');
var JSZip = require('jszip');

new JSZip.external.Promise(function (resolve, reject) {
  fs.readFile('myfile.sketch', function(err, data) {
    if (err) {
      reject(e);
    } else {
      resolve(data);
    }
  });
}).then(function (data) {
  return JSZip.loadAsync(data);
})

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论