广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    教你如何导出百度网盘目录结构-超详细的

    来源:网络收集  点击:  时间:2024-03-30
    【导读】:
    百度网盘大家都在用,有时候希望把自己的文件目录结构给导出来,能形成一个文件树的形式,无奈网上找了好多资料都无果,大多数说的是在浏览器里控制台下,那个方法已经不适用,而且只能导出一级目录,求人不如求己,无奈之下决定自己动手丰衣足食,下面小编手把手教你怎么把百度云网盘里的文件目录机构给导出来。工具/原料more百度云管家电脑版navicat premium数据库编辑软件方法11/10分步阅读

    右键点击百度云客户端快捷方式---选择“打开文件位置(XP不适用)”,或点属性,查看快捷方式目标,一般在“C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunGuanjia\”位置,打开后可以看到有个user目录,双击打开,如下图所示。

    2/10

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

    3/10

    如何打开这个数据库呢?

    这需要一个软件,Navicat Premium。这里就不提供下载地址了,自己百度去吧,百度的时候在关键字后面加一个绿色免安装,下载的双击就可以用,不用安装了。

    打开Navicat Premium,点连接选择SQLite常规现有数据库文件>浏览并选择你的百度云客户端目录中“BaiduYunCacheFileV0.db”文件,点“连接测试”,如显示“连接成功”,点击确定回到主界面,如下图所示。

    4/10

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

    5/10

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

    6/10

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

    7/10

    打开导出的文件:

    8/10

    接下来就是怎么把这些信息生成文件树的形式了,下面介绍两种方法:

    (方法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);

    }

    ?

    运行完这个程序后,找到已经建好的文件夹,打开命令行,如下图所示:

    9/10

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

    10/10

    看到没,文件目录树已经生成啦,下面来看第二种方法。

    方法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

    生成目录树后复制到词本里是这个样子的:

    3/3

    以上是两种方法,供大家参考。

    注意事项

    下载navicat premium时尽量选择绿色免安装版

    Excel需要安装vba宏

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_384490.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 04:18:59  耗时:0.029
    0.0288s