教你如何导出百度网盘目录结构-超详细的
来源:网络收集 点击: 时间:2024-03-30右键点击百度云客户端快捷方式---选择“打开文件位置(XP不适用)”,或点属性,查看快捷方式目标,一般在“C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunGuanjia\”位置,打开后可以看到有个user目录,双击打开,如下图所示。

里面有几个文件夹,分别存放各用户文件资料。打开那个一长串的文件夹,可以看到里面有个“BaiduYunCacheFileV0.db”文件,每个人可能文件名不一样,但是后缀肯定是.db文件,然后是大小最大的那个文件,这个就是存放你网盘的详细信息的数据库了,如下图所示。


如何打开这个数据库呢?
这需要一个软件,Navicat Premium。这里就不提供下载地址了,自己百度去吧,百度的时候在关键字后面加一个绿色免安装,下载的双击就可以用,不用安装了。
打开Navicat Premium,点连接选择SQLite常规现有数据库文件>浏览并选择你的百度云客户端目录中“BaiduYunCacheFileV0.db”文件,点“连接测试”,如显示“连接成功”,点击确定回到主界面,如下图所示。




双击刚才建立的那个百度云管家数据库,出现main,再双击main,点开表,双击cache_file表,如下图所示:

这里就是你的百度网盘上的所有目录结构信息,其中parent_path是路径,server_filename是文件名。接下来就是导出这些信息到文件里,导出的时候可以选择全部导出也可以选择导出自己需要的部分,怎么导出自己需要的部分呢,比如我只需要“教程”文件夹下的内容,看下面的截图:





这样一来出现的都是自己需要的数据了,接下来点击导出按钮,你可以选择全部导出,也可以选择导出部分。







打开导出的文件:

接下来就是怎么把这些信息生成文件树的形式了,下面介绍两种方法:
(方法1)利用PHP程序把xls文件读取生成目录文件夹,然后再利用windows命令生成目录结构。
PHP(需百度下载phpexcel插件)代码如下:
?php
header(Content-type:text/html;charset=utf-8);
require_oncephpexcel.php;
require_oncePHPExcel\IOFactory.php;
require_oncePHPExcel\Reader\Excel2007.php;
$uploadfile=data.xlsx;//这是刚才生成的xls文件,我改了下名字,你改不改无所谓,对应上就行
$uploadfile=android_path.xls;
$objReader=\PHPExcel_IOFactory::createReader(Excel5);/*Excel5for2003excel2007for2007*/
$objPHPExcel=$objReader-load($uploadfile);//Excel路径
$sheet=$objPHPExcel-getSheet(0);
$highestRow=$sheet-getHighestRow();//取得总行数
$highestColumn=$sheet-getHighestColumn();//取得总列数
$objWorksheet=$objPHPExcel-getActiveSheet();
$highestRow=$objWorksheet-getHighestRow();//取得总行数
$highestColumn=$objWorksheet-getHighestColumn();
$highestColumnIndex=\PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
$data=array();
for($row=2;$row=$highestRow;$row++){
$strs=array();
//注意highestColumnIndex的列数索引从0开始
for($col=0;$col$highestColumnIndex;$col++){
if($col==0){
$strs=$objWorksheet-getCellByColumnAndRow($col,$row)-getValue();
}else{
$strs=$objWorksheet-getCellByColumnAndRow($col,$row)-getValue();
}
}
$data=$strs;
}
foreach($dataas$k=$v){
$parent_path=iconv(utf-8,gbk,trim(trim($v,/)));
$filename=iconv(utf-8,gbk,trim(trim($v,/)));
if(!is_dir($parent_path)){
mkdir($parent_path,0777,true);
}
$handle=fopen($parent_path/$filename,w);
fwrite($handle,明礼馨德);
fclose($handle);
}
?
运行完这个程序后,找到已经建好的文件夹,打开命令行,如下图所示:


然后再命令窗口输入tree /f mulu.txt ,回车后你会发现多了个mulu.txt文件,打开看看:


看到没,文件目录树已经生成啦,下面来看第二种方法。
方法21/3上面是一种方法,接下来说第二种方法,按照方法1把Excel文件导出后,利用Excel表格的vba宏命令来实现(默认下没有这个宏,需要自己下载安装)如果你对VBA有所了解,那就选择这个方法吧,如果不了解的话建议还是选择上一个,下面看代码:
Fori=2To37204’数据行数
k=Val(Sheet1.Cells(i,18))
Forz=0Tok
Sheet1.Cells(i,21+z)=│
Next
IfSheet1.Cells(i,13)Sheet1.Cells(i-1,13)Then
strCell=Split(Sheet1.Cells(i,13),/)
IfUBound(strCell)=1ThenSheet1.Cells(i,21+k)=├strCell(UBound(strCell)-1)ElseSheet1.Cells(i,21+k)=├Sheet1.Cells(i,13)
IfUBound(strCell)=1ThenSheet1.Cells(i,21+k)=strCell(UBound(strCell)-1)ElseSheet1.Cells(i,21+k)=Sheet1.Cells(i,13)
Worksheets(Sheet1).Range(Cells(i,21+k),Cells(i,21+k)).Font.FontStyle=Bold
‘如果是文件夹则设置成红色显示
Worksheets(Sheet1).Range(Cells(i,21+k),Cells(i,21+k)).Font.ColorIndex=3
Worksheets(Sheet1).Range(Cells(i,21+k),Cells(i,21+k)).Select
Selection.Columns.AutoFit
EndIf
IfSheet1.Cells(i,7)=0Then
Sheet1.Cells(i,21+k+1)=├Sheet1.Cells(i,3)
IfVal(Sheet1.Cells(i,4))=1048576Then’文件大小,小于1M的以K表示
Sheet1.Cells(i,20)=Format(CStr(Val(Sheet1.Cells(i,4)/1024/1024)),######0.##)M
Else
Sheet1.Cells(i,20)=Format(CStr(Val(Sheet1.Cells(i,4)/1024)),######0.##)K
EndIf
Sheet1.Cells(i,21+k+1)=Sheet1.Cells(i,3)
Else
Sheet1.Cells(i,21+k+1)=Sheet1.Cells(i,3)
Worksheets(Sheet1).Range(Cells(i,21+k+1),Cells(i,21+k+1)).Font.ColorIndex=5
EndIf
Next
2/3生成目录树后复制到词本里是这个样子的:

以上是两种方法,供大家参考。
注意事项下载navicat premium时尽量选择绿色免安装版
Excel需要安装vba宏
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_384490.html