当前位置:首页 » 文件管理 » nodefs遍历文件夹

nodefs遍历文件夹

发布时间: 2022-07-23 17:40:17

‘壹’ 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());
}
}

‘贰’ nodejs怎么实现ftp远程目录的遍历

不知道支不支持ftp协议啊。要是支持的话直接连接就好了。应该支持。冰晶V8。

‘叁’ 用 java遍历hadoop分布式文件系统中某个目录下的全部文件,我的hadoop是单节点的

原因:
访问的是本地文件系统而非hdfs , 因为Configuration默认的是在core-default.xml中的属性fs.default.name默认值是file:///,表示本地文件系统。在我们new Configuration();时会默认加载core-default.xml文件,所以根据这个文件的fs.default.name值使用了本地文件系统。

解决方法:
一般安装hadoop时都是修改core-site.xml文件,这个文件设置的属性值一般使用来覆盖core-default.xml这个文件的,在core-site.xml文件中会设置fs.default.name值为hadoop的namenode的地址以及端口号,如hdfs://localhost:9000,即表示namenode是本机,也就是为分布式。所以我们在连接hdfs时需要指定连接的地址,也就是hadoop集群中core-site.xml中fs.default.name属性值。所以解决方法有三种:
1)在代码Configuration conf=new Configuration();之后手动为Configuration对象设置fs.default.name属性值,如:conf.set("fs.default.name","hdfs:localhost:9000");
2)在代码的classpath下创建一个文件,在文件中设置fs.default.name属性值,再使用conf.addResource("文件路径")将该文件添加到Configuration中;
3)直接将集群的core-site.xml添加到classpath下即可,无需手动添加到Configuration,在new Configuration时会自动加载该文件

‘肆’ 在java中如何遍历某个路径下的所有文件夹和文件

首先,我们先来遍历一下D盘根目录下所有的子文件:public
static
void
fileList()
{
File
file=new
File("d:/");
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
}
}
}对此,我们肯定不满足,我们需要遍历D盘下所有的文件和文件夹,而不是根目录下的文件夹,这个时候我们需要使用到递归:public
static
void
fileList(File
file)
{
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
fileList(f);
}
}
}然后在主函数中调用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file);
}结果是不是能令你满意呢?显然,输出的都是全路径,我们可以对我们的递归函数做如下改进:
public
static
void
fileList(File
file,int
node)
{
node++;
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
for(int
i=0;i<node;i++){
if(i==node-1){
System.out.print("├");
}
else{
System.out.print("
");
}
}
System.out.println(f.getName());
fileList(f,node);
}
}
}然后再次在主函数中调用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file,0);
}得到的结果是一个类似树状的结构,如果你对此还不满意,可以尝试给JTree上添加节点,可以做到和资源管理器中一样的结构。

‘伍’ 请问在swing中 如何根据给出的一个文件夹的目录把下面的文件全部循环遍历出来 然后以树形显示,高手赐教啊

之前做过一个东西 用到的技术跟你需要的类似 .可以给你参考一下
我用的JTree.耐性看完 应该会对你有帮助
大致说下思路
先准备一个遍历文件夹的方法 .递归这东西,能不用 尽量别用
File file = new File("D:/");这里举例遍历D盘
LinkedList<File> dir = new ....;准备一个目录数组
ArrayList<File> fs = new.....;准备一个文件数组
dir.add(file);
for(File f : dir){
if(f.isDirectory()){//如果是数组 装进去文件夹数组
dir.add(f)
}else if(f.isFile()){//如果是标准文件 装进这个数组
fs.add(f);
}
}
大概就这样遍历..细节没过多考虑 手写没经过编译不知道有没有错 大致算法就这样
fs里面装的就是你给定文件夹里所有的标准文件
再来显示
1.首先,要求给定一个文件夹目录,显示在树上,并可以展开.既然要显示在树上,那就必须得是个TreeNode
这有句代码:
DynamicUtilTreeNode root = new DynamicUtilTreeNode(FileSystemView.getFileSystemView().getHomeDirectory(),new Object[0]);
这句代码的意思 是获取到桌面File,并把它转换成一个DynamicUtilTreeNode.
2.用你给定文件转换出来的TreeNode 构建一个TreeModel
DefaultTreeModel treeModel = new DefaultTreeModel(root)
root表示你给定文件转换出来的TreeNode.
3.这下方便了,把fs里和dir里的所有文件 和文件夹转换成TreeNode 再根据他们的路径 插入到这棵树中..用这个方法(是treemodel上的方法 所以要构建一个这个,十分方便)
一个3个参数
treeModel.insertNodeInto(这个参数填TreeNode, tn(这个表示父节点), getTreeNodeChildCount(tn) );//最后这个参数是插入位置,我这样写 是插入到末尾

----------------------------------------------------
大概就这样了.不过一般来说 树不显示文件只显示文件夹(参照windows的资源管理器) 显示文件的可以用个JList来做 .
希望对你有帮助把 ,我自己也算回顾了下以前写的东西...

‘陆’ 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']) {

‘柒’ 为什么我在c#中遍历文件夹是会出现两次以上的重复文件

不是出现重复的文件,是截取字符串错了
改成:string str = f.Name.Substring(f.Name.LastIndexOf('\\') + 1, f.Name.LastIndexOf('.'));

‘捌’ 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循环删除非空文件夹及子目录下的所有文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

热点内容
第五人格服务器错误是怎么解决 发布:2025-05-09 21:14:24 浏览:512
压缩系数z 发布:2025-05-09 21:01:51 浏览:652
双开助手缓存的文件在哪 发布:2025-05-09 21:01:41 浏览:525
酒仙脚本 发布:2025-05-09 21:00:40 浏览:905
牙髓存储 发布:2025-05-09 20:50:22 浏览:433
安卓如何看自己去过哪里 发布:2025-05-09 20:37:23 浏览:695
电脑怎么制作手机版的我的世界服务器 发布:2025-05-09 20:36:45 浏览:533
免流脚本破解 发布:2025-05-09 20:33:49 浏览:182
微信图书馆源码 发布:2025-05-09 20:31:40 浏览:955
ucos的配置文件有哪些 发布:2025-05-09 20:25:01 浏览:481