当前位置:首页 » 文件管理 » 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());
}
}

热点内容
网页与数据库如何连接到服务器地址 发布:2025-01-19 08:12:55 浏览:509
c语言单元测验 发布:2025-01-19 07:58:56 浏览:990
c语言贪吃蛇源代码 发布:2025-01-19 07:58:53 浏览:879
c语言char数组长度 发布:2025-01-19 07:46:23 浏览:10
淘宝如何清理缓存垃圾 发布:2025-01-19 07:42:07 浏览:438
电脑输入密码阶段如何改语言 发布:2025-01-19 07:42:05 浏览:786
存储器国产率 发布:2025-01-19 07:04:36 浏览:567
锐程cc蓝鲸版选什么配置 发布:2025-01-19 06:56:28 浏览:169
城镇居民医保卡的原始密码是多少 发布:2025-01-19 06:55:54 浏览:788
wifi密码如何修改密码 发布:2025-01-19 06:39:06 浏览:962