2016-05-06 133 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 index *或dir index *)修改在答案中剪切的代碼。 – Tom

+0

這正是我一直在尋找的,謝謝! –

0

變種路徑=要求( '路徑')

path.extname( '的index.html') //返回 'html的'

下面是參考答案

Node.js get file extension

更新時間:

https://www.npmjs.com/package/file-extension NP m安裝--save文件擴展名 允許你指定一個文件名,那麼它將返回擴展名

+0

正如我的問題所述,我不知道該文件的擴展名。我只知道有一個名爲'index.SOMETHING'的文件。 –

+0

$ npm install --save file-extension這裏是文檔https://www.npmjs.com/package/file-extension – Jamesed

0

我知道我遲到了派對,但你可以在基於Unix的系統中使用grep命令。

ie ls | grep PIC。這樣做首先給出工作目錄的目錄列表,然後從目錄列表的輸出中搜索短語PIC並打印它。(所以將要打印的唯一的事情是文件名)

在Windows中,使用dir PIC.* /b

可以執行使用child_process這些命令,如圖在其他的答案