2016-05-06 4 views
3

У меня есть папка с изображениями, и они могут иметь разные форматы, но имя всегда будет уникальным. Есть ли способ получить расширение файла, если я знаю имя файла без расширение (например, index и неindex.html)? Я мог бы просто проверить, существует ли файл для каждого расширения, которое я ожидаю, но это кажется плохим решением для меня.Nodejs получить расширение файла

Пример: Я знаю, что есть образ называется PIC, но я не знаю, расширение (может быть либо «.png», «.jpg» и т.д.), поэтому я не могу использовать командный файл.

+1

Возможные дубликатом [Node.js получить файл расширение] (http://stackoverflow.com/questions/10865347/node-js-get-file-extension) – John

+1

Я хочу удалить флаг, но, к сожалению, не могу. Если мода может отклонить это было бы замечательно – John

ответ

3

Ну, если вы используете системы на базе Unix, это может быть обходным путем.

var sys = require('util') 
 
var exec = require('child_process').exec; 
 

 
function puts(error, stdout, stderr) { 
 
    console.log(stdout) 
 
} 
 

 
// this is where you should get your path/filename 
 
var filename = "login"; 
 
// execute unix command 'file' 
 
exec("file " + filename, puts);

Я проверил его в файл PNG и файл EJS, и без каких-либо расширений (что бы не делать разницы). Результаты приведены ниже:

PNG: фото: данные изображения PNG, 100 х 100, 8 бит/цвет RGB, построчной

EJS (что в основном HTML): Логин: HTML документ, ASCII текст

Вы можете проверить файл параметры командной строки, чтобы сделать его легче работать с StrI ng (например, файл -b имя файла). Если вы используете Windows, вам нужно будет проверить альтернативную команду для файла.

Надеюсь, это как-то полезно.

+0

Спасибо за ваш ответ. Я думаю, что я не задал свой вопрос достаточно конкретно, поэтому я обновил свой вопрос. –

+0

Можете ли вы использовать команду ** dir ** или ** ls **? Я имею в виду, что если вы можете работать с командами операционной системы, код, отпиленный в ответе, может быть адаптирован к команде ОС (например, индекс ls * OR dir index *). – Tom

+0

Это именно то, что я искал, спасибо! –

0

вар путь = требуется ('путь')

path.extname ('index.html') // возвращает '.html'

Вот ссылки ответ

Node.js get file extension

Обновлено:

https://www.npmjs.com/package/file-extension нп m install --save file-extension позволяет указать имя файла, после чего он вернет расширение

+0

Как указано в моем вопросе, я не знаю расширения файла. Я просто знаю, что есть файл под названием index.SOMETHING. –

+0

$ npm install --save file-extension - это документация https://www.npmjs.com/package/file-extension – Jamesed

0

Я знаю, что опаздываю на вечеринку, но вы можете использовать команду grep в системах на основе unix.

ie ls | grep PIC. Сначала это дает список каталогов рабочего каталога, а затем ищет выражение PIC из вывода каталога и распечатывает его.(Так что единственное, что будет напечатано имя файла)

В Windows, используйте dir PIC.* /b

Вы можете выполнить эти команды, используя child_process, как показано в других ответах