通过数据库数据构建文件夹结构的递归算法

本文介绍了一种基于C#的文件递归下载方法,通过判断文件夹与文件进行递归处理,实现网盘数据的本地化同步。文章详细展示了如何使用.NET框架下的Directory类创建目录,FileInfo类操作文件,以及如何递归调用自身方法处理子文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void fileRecursion(List<RFN.BM.OA.NetdiskDataInfo> netdiskDataInfoRecursions, string path)
{
var uploadFile = new NST.BL.STM.UploadFile();
var netdiskData = new RFN.BL.OA.NetdiskData();

foreach (var netdiskDataInfoRecursion in netdiskDataInfoRecursions)
{
if (netdiskDataInfoRecursion.FileSize == null)//通过FileSize 判断是文件还是文件夹
{
var pathDirectory = path + netdiskDataInfoRecursion.DataName + "\\";
Directory.CreateDirectory(pathDirectory);//建立文件夹
}
else
{
string filePath = path + netdiskDataInfoRecursion.DataName;

var uploadFileInfo = uploadFile.SelectById(netdiskDataInfoRecursion.UploadFileId);

string uploadFilePath = @"D:\Work\Work4\RFNWeb\Uploads\" + uploadFileInfo.NewFileName;//本地Uploads路径

FileInfo filePathInfo = new FileInfo(filePath);
FileInfo uploadFilePathInfo = new FileInfo(uploadFilePath);

var filePathCreate = filePathInfo.Create();
filePathCreate.Close();
uploadFilePathInfo.CopyTo(filePath, true);//从上传文件中复制到建立好的文件夹中
}
}
foreach (var netdiskRecursion in netdiskDataInfoRecursions)
{
if (netdiskRecursion.FileSize == null)
{
netdiskDataInfoRecursions = netdiskData.SelectBy("[ParentId]=?", "[CreateTime]", netdiskRecursion.Id);
if (netdiskDataInfoRecursions != null)
{
path = path + netdiskRecursion.DataName + "\\";
fileRecursion(netdiskDataInfoRecursions, path);//如果是文件夹且数据不为空,则继续调用此方法。
}
}
}
}

转载于:https://www.cnblogs.com/zhuxueyuan/p/7352471.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值