當前位置:首頁 » 文件管理 » node遍歷文件夾

node遍歷文件夾

發布時間: 2022-06-15 08:50:01

❶ 用nodejs怎麼獲得一個文件夾下面的視頻信息呢(具體指視頻時長/多少分鍾的視頻)

我知道的跟nodejs關系不大,可以用ffmpeg來獲取,然後nodejs調用ffmpeg的命令。

❷ nodejs 如何快速的遍歷大量的文件夾

CORS規格書號只需要OPTIONS調用先於POST或GET如果POST或GET有任何非簡單內容或標題在裡面。 參見「預檢請求」
2. 嘗試將控制傳遞給下一個匹配的路由。如果快遞是優先個匹配app.get路線,那麼它不會繼續到選擇路線,除非你做(未來的)這樣的:
app.get('somethingelse', function(req, res, next) {
//..set headers etc.
next();
});
在條款CORS的東西,我把它放在一個中間件是運作良好
//CORS middleware
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', config.allowedDomains);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
//...
app.configure(function() {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.swww.hbbz08.com ession({ secret: 'cool beans' }));
app.use(express.methodOverride());
app.use(allowCrossDomain);
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

3. 留在路由的想法。這段代碼:
app.all('/*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});

4. 我已經適合明示或連接中間件。它支持OPTIONS要求預檢檢查。請注意,它將使CORS訪問任何東西,你可能要在支票放 CodeGo.net,如果你想限制接取。
app.use(function(req, res, next) {
var oneof = false;
if(req.headers.origin) {
res.header('Access-Control-Allow-Origin', req.headers.origin);
oneof = true;
}
if(req.headers['access-control-request-method']) {
res.header('Access-Control-Allow-Methods', req.headers['access-control-request-method']);
oneof = true;
}
if(req.headers['access-control-request-headers']) {

❸ 怎麼使用java編程實現linux下所有文件目錄的遍歷

為了避免目錄列舉消耗時間過長,請指定一個目錄來模擬,命令行參數:代表路徑的字元串.
如果認可代碼,請加分50,謝謝

----

import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.io.*;
final public class FileTree extends JFrame {
public FileTree(File dir) throws HeadlessException {
super("File Tree");
JTree tree;
add(new JScrollPane(tree =new JTree(buildTreeModel(dir))));
tree.setCellRenderer(new FileTreeRenderer());
setSize(400,600);
setVisible(true);
}

private TreeModel buildTreeModel(File dir){
DefaultMutableTreeNode root = new DefaultMutableTreeNode(dir);
walkthrough(dir,root);
return new DefaultTreeModel(root);
}

private static void walkthrough(File f,DefaultMutableTreeNode node){
for (File fle : f.listFiles()) {
DefaultMutableTreeNode n = new DefaultMutableTreeNode(fle);
node.add(n);
if (fle.isDirectory()){
walkthrough(fle, n);
}
}
}

private class FileTreeRenderer extends DefaultTreeCellRenderer {
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel cmp = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if (value instanceof DefaultMutableTreeNode) {
DefaultMutableTreeNode n = (DefaultMutableTreeNode)value;
Object obj = n.getUserObject();
if (obj instanceof File) {
File f = (File)obj;
cmp.setText(f.getName());
cmp.setForeground(f.isDirectory()?Color.BLUE:Color.BLACK);
}
}
return cmp;
}
}

public static void main(String[] args) {
new FileTree(new File(args[0]));
}
}

❹ nodejs怎麼在指定文件夾下運行

一、挖坑 & 掉坑:
緣起一段這樣的代碼:
fs.readFile('./docs/use.md', function (err, buffer) {
if (err) {
return console.log('error: ', err);
}

console.log('OK');
});

本地運行時一切 OK,線上部署時卻死活找不到 ./docs/use.md 這個文件,後來才發現是因為線上啟動應用時不是從當前目錄啟動了,不過為什麼啟動腳本的位置也會影響這個路徑呢,且往下看。
二、填坑:
Node 中的文件路徑大概有 __dirname, __filename, process.cwd(), ./ 或者 ../,前三個都是絕對路徑,為了便於比較,./ 和 ../ 我們通過 path.resolve(『./』)來轉換為絕對路徑。
先看一個簡單的栗子:
假如我們有這樣的文件結構:
app/
-lib/
-common.js
-model
-task.js
-test.js
在 task.js 里編寫如下的代碼:
var path = require('path');console.log(__dirname);console.log(__filename);console.log(process.cwd());console.log(path.resolve('./'));

在 model 目錄下運行 node task.js 得到的輸出是:
/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js/task.js/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js

然後在 app 目錄下運行 node model/task.js,得到的輸出是:
/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js/task.js/Users/guo/Sites/learn/app
/Users/guo/Sites/learn/app

那麼,不好意思不是問題來了~T_T,我們可以得出一些膚淺的結論了:
__dirname: 總是返回被執行的 js 所在文件夾的絕對路徑
__filename: 總是返回被執行的 js 的絕對路徑
process.cwd(): 總是返回運行 node 命令時所在的文件夾的絕對路徑
./: 跟 process.cwd() 一樣、一樣、一樣的嗎?
我明明記得在 require(『../lib/common』) 里一直都是各種相對路徑寫,也沒見報什麼錯啊,我們還在再來個栗子吧,還是上面的結構,』model/task.js』 里的代碼改成:
var fs = require('fs');var common = require('../lib/common');

fs.readFile('../lib/common.js', function (err, data) { if (err) return console.log(err);
console.log(data);
});

在 model 目錄下運行 node task.js,一切 Ok,沒有報錯。然後在 app 目錄下運行 node model/task.js,然後很果斷滴報錯了:
那麼這下問題真的都是來了,按照上面的理論,在 app 下運行時,../lib/common.js 會被轉成 /Users/guo/Sites/learn/lib/common.js,這個路徑顯然是不存在的,但是從運行結果可以看出 require(『../lib/common』) 是 OK 的,只是 readFile 時報錯了。
那麼關於 ./ 正確的結論是:
在 require() 中使用是跟 __dirname 的效果相同,不會因為啟動腳本的目錄不一樣而改變,在其他情況下跟 process.cwd() 效果相同,是相對於啟動腳本所在目錄的路徑。
三、總結:
只有在 require() 時才使用相對路徑(./, ../) 的寫法,其他地方一律使用絕對路徑,如下:
// 當前目錄下
path.dirname(__filename) + 『/test.js』;
// 相鄰目錄下
path.resolve(__dirname, 『../lib/common.js』);
四、參考鏈接:
What is the difference between __dirname and ./ in node.js
nodejs API
以上:smile:。

❺ Node如何同時運行兩個文件

打包一個雙擊就可以直接運行的node-webkit應用,需要有:自己做的項目文件、package.json的配置文件,還有下載下來的node-webkit。

一、打包一個可以運行 .nw文件
1、在要打包的項目的主頁面同一級目錄里建一個package.json的文件,它是用來配置運行窗口和應用信息的。
如下圖是我的項目,其中demo.html就是我運行這個應用時打開的頁面:

我的很簡單package.json文件內容如下,這2個是必備的。name可任意起,main就是你要運行的主頁文件名:
查看文本列印
{
"name": "music",
"main": "demo.html"
}

2、將整個文件夾zip打包成 xxx.nw文件,一定要是zip打包,其他是不行的,我就在這里搞錯了。
我的這個用命令壓縮是:zip -r MusicPlay.nw css demo.html images package.json script
生成的包:

打開是這樣的:

這樣可運行的 .nw文件就好了,這時可以測試一下是否成功。
兩種方法檢測:
1)可以直接拖拉這個壓縮包拖到下載的node-webkit文件夾里的nw上面運行;
2)可以用命令行運行:
先cd到node-webkit文件目錄下,我的是:cd /opt/node-webkit-v0.9.1-linux-ia32
然後輸入:./nw /home/shara/workplace/php/MusicPlayerHTML5/MusicPlay.nw
這樣它就會運行了,成功時長這樣,我的東西還沒做好,所以長好醜,忽略吧:

二、將這個MusicPlay.nw和node-webkit文件下的 nw 一起創建一個文件:cat MusicPlay.nw nw > app && chmod +x app
在node-webkit文件夾里得到這個東西:

最後將node-webkit文件夾里的libffmpegsumo.so 和 nw.pak 跟這個app放到一個文件夾里,把這個文件夾放別人的機子上,它也可以直接雙擊運行這個app文件了。

❻ windows中node怎樣執行本地的js文件

關於這個問題,我們首先要清楚,執行文件必須找到文件的路徑,我們先進入電腦的dos命令界面(同時按住鍵盤上的windows圖標和R鍵)

在彈出的運行窗口中輸入"cmd"就會進入windows的dos命令運行界面了。

接下來是我們要怎樣進入到目標JS所在磁碟的問題了。大家輸入磁碟名加冒號,就可以進入相應的盤符了,例如D:

進入盤附後,再進入下一級目錄,我們需要知道盤符內都有哪些文件,我們敲入dir,即可展示盤符中現有的文件,

然後我們輸入cd加上想要進入的文件夾名稱,就會進入到該文件夾。

❼ Node.JS循環刪除非空文件夾及子目錄下的所有文件

最近要實現一個循環文件夾的功能,文件夾可能不是空的,還可能帶有子文件夾和文件,網上找了一些現有的庫,但是都不提供刪除進度。所以就自己寫了一個。
var
fs
=
require('fs')
var
path
=
require('path')
var
remove
=
function(tarPath,
cb,
removeStates)
{
if
(!removeStates)
{
removeStates
=
{
cur:
0,
all:
0
}
}
else
{
if
(!removeStates.cur)
{
removeStates.cur
=
0;
}
if
(!removeStates.all)
{
removeStates.all
=
0;
}
}
removeStates.all++;
fs.stat(tarPath,
function(err,
states)
{
removeStates.cur++;
if
(err)
{
cb
&&
cb()
return
}
if
(states.isDirectory())
{
fs.readdir(tarPath,
function(err,
files)
{
if
(err)
{
console.log(err)
cb
&&
cb()
return
}
if
(files.length
<
1)
{
fs.rmdir(tarPath,
cb)
return
}
var
count
=
0
var
checkEnd
=
function()
{
if
(++count
==
files.length)
{
fs.rmdir(tarPath,
cb)
}
}
files.forEach(function(file)
{
remove(path.join(tarPath,
file),
checkEnd,
removeStates)
})
})
}
else
{
fs.unlink(tarPath,
function(err)
{
if
(err)
{
console.log(err)
}
cb
&&
cb()
return
})
}
})
return
removeStates
}
使用很簡單
var
states
=
remove('./testdir',
function()
{
console.log('delete
complete')
clearInterval(checkTimer)
});
var
checkTimer
=
setInterval(function()
{
console.log(states)
},
500);
輸出結果:
node
remove.js
{
cur:
546,
all:
546
}
delete
complete
PS:下面看下NodeJs遞歸刪除非空文件夾
此文由於第一次使用fs.unlink()刪除文件夾時報「Error:
EPERM:
operation
not
permitted,
unlink」錯誤而寫,這是因為fs.unlink()只能刪除文件。
fs.rmdir()或fs.rmdirSync()用戶刪除空文件夾,
fs.unlink()或fs.unlinkSync()用於刪除文件,因此刪除非空文件夾需要使用遞歸方式。
function
deleteFolderRecursive(path)
{
if(
fs.existsSync(path)
)
{
fs.readdirSync(path).forEach(function(file)
{
var
curPath
=
path
+
"/"
+
file;
if(fs.statSync(curPath).isDirectory())
{
//
recurse
deleteFolderRecursive(curPath);
}
else
{
//
delete
file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
總結
以上所述是小編給大家介紹的Node.JS循環刪除非空文件夾及子目錄下的所有文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

❽ nodejs怎麼實現ftp遠程目錄的遍歷

不知道支不支持ftp協議啊。要是支持的話直接連接就好了。應該支持。冰晶V8。

❾ C#遍歷某個特定磁碟所有文件夾

是用遞歸,我這里只顯示了文件夾哈,要顯示文件也是類似的,你最好用線程或非同步獲取,不然可能文件夾多了會卡的,很簡單,兩段代碼
一個按鈕,一個TreeView,一個lable控制項
private void SetFolder(string[] path, TreeNode Node)
{
foreach (string str in path)
{
SetDel st = Setter;
label4.Invoke(st, "正在載入:" + str, label4);
string[] temp = str.Split('\\');
AddDel2 del2 = SetNode;
TreeNode NodeChild = (TreeNode)treeView1.Invoke(del2, Node, temp[temp.Length - 1]);
string[] Next = Directory.GetDirectories(str);
SetFolder(Next, NodeChild);
}
}
private delegate TreeNode AddDel(string name);
private delegate void Expan();
private delegate TreeNode AddDel2(TreeNode TN,string name);
private delegate void SetDel(string name,Label lbl ) ;
private void Setter(string name, Label lbl)
{
lbl.Text = name;
}
private TreeNode SetNode(TreeNode TN,string name)
{
return TN.Nodes.Add(name);
}
private void GetRoot(object obj)
{
try
{
AddDel del = treeView1.Nodes.Add;
AddDel2 del2 = SetNode;
string path = obj as string;
TreeNode NodeRoot = (TreeNode)treeView1.Invoke(del, path.Split('\\')[0]);
SetDel st = Setter;
string[] strs=Directory.GetDirectories(path);
SetFolder(strs, NodeRoot);
label4.Invoke(st, "載入完成", label4);
Expan ex = NodeRoot.Expand;
treeView1.Invoke(ex);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button4_Click(object sender, EventArgs e)
{
treeView1.Nodes.Clear();
FolderBrowserDialog SFD = new FolderBrowserDialog();
if (DialogResult.OK == SFD.ShowDialog())
{
new Thread(GetRoot).Start(SFD.SelectedPath);
}
}

❿ c#怎麼用代碼新建文件夾和遍歷文件夾

問題一:
using System.IO;

fileStream fs =new fliestream("路徑名",fileMode.create);
streamwriter sw=new streamwriter(fs);
sw.write(content);
sw.close();
fs.close();

問題二:

private void Form1_Load(object sender, EventArgs e)
{
try
{
string[] rootstr = Directory.GetLogicalDrives(); //得到系統的驅動器
foreach (string rootdrive in rootstr)
{

TreeNode tn = new TreeNode(rootdrive);
treeView1.Nodes.Add(tn); //將系統驅動器添加到樹的節點上
ImageList kk = new ImageList();
//kk.Images.Add()
getDinfo(tn); //得到各個驅動器的下一級目錄
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

private void getDinfo(TreeNode TN)
{
try
{
DirectoryInfo dissub;

if (TN.Nodes.Count == 0) //如果當前樹節點的TreeNode數量為0,說明它還沒有遍歷過,遍歷這個目錄
{
dissub = new DirectoryInfo(TN.FullPath);
foreach (DirectoryInfo di in dissub.GetDirectories())
{
TreeNode tnsub = new TreeNode(di.Name);
TN.Nodes.Add(tnsub);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

熱點內容
魔獸世界如何快速增加伺服器 發布:2024-05-19 23:53:37 瀏覽:693
安卓手機如何轉入蘋果手機內 發布:2024-05-19 23:50:35 瀏覽:404
安卓哪個能安裝血染小鎮 發布:2024-05-19 23:45:57 瀏覽:900
tensorflowmac編譯 發布:2024-05-19 23:28:59 瀏覽:701
sqlmaxvarchar 發布:2024-05-19 23:24:02 瀏覽:702
linux配置網卡命令 發布:2024-05-19 23:22:57 瀏覽:504
python查看進程 發布:2024-05-19 22:59:37 瀏覽:158
androidhtml顏色 發布:2024-05-19 22:58:34 瀏覽:847
米3系統存儲和內存設備 發布:2024-05-19 22:50:50 瀏覽:214
途樂有哪些越野配置 發布:2024-05-19 22:49:53 瀏覽:673