首页 » 网站建设 » readerfactoryphp技巧_教你若何导出百度网盘具体目录结构超具体的

readerfactoryphp技巧_教你若何导出百度网盘具体目录结构超具体的

访客 2024-11-27 0

扫一扫用手机浏览

文章目录 [+]

首先,你要有百度云管家客户端(把稳是PC版的哦),打开其程序所在目录。

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

readerfactoryphp技巧_教你若何导出百度网盘具体目录结构超具体的

里面有几个文件夹,分别存放各用户文件资料。

readerfactoryphp技巧_教你若何导出百度网盘具体目录结构超具体的
(图片来自网络侵删)

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

如何打开这个数据库呢?

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

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

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

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

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

打开导出的文件:

接下来便是怎么把这些信息天生文件树的形式了,下面先容两种方法:

(方法1)利用PHP程序把xls文件读取天生目录文件夹,然后再利用windows命令天生目录构造。

PHP代码如下:

<?php

header(\"大众Content-type: text/html; charset=utf-8\"大众);

require_once'phpexcel.php';

require_once'PHPExcel\IOFactory.php';

require_once'PHPExcel\Reader\Excel2007.php';

$uploadfile='data.xlsx';//这是刚才天生的xls文件,我改了下名字,你改不改无所谓,对应上就行

$uploadfile='android_path.xls';

$objReader= \PHPExcel_IOFactory::createReader('Excel5');/Excel5 for 2003 excel2007 for 2007/

$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['parent_path'] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();

}else{

$strs['filename'] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();

}

}

$data[$row] = $strs;

}

foreach($dataas$k=> $v){

$parent_path= iconv(\"大众utf-8\"大众,\"大众gbk\"大众,trim(trim($v['parent_path'],\公众/\公众)));

$filename= iconv(\公众utf-8\"大众,\"大众gbk\公众,trim(trim($v['filename'],\"大众/\"大众)));

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文件,打开看看:

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

(方法2)利用Excel表格的vba宏命令来实现(默认下没有这个宏,须要自己下载安装)

如果你对VBA有所理解,那就选择这个方法吧,如果不理解的话建议还是选择上一个,下面看代码:

For i = 2 To 37204’数据行数

k = Val(Sheet1.Cells(i, 18))

For z = 0 To k

Sheet1.Cells(i, 21 + z) = \公众│\"大众

Next

If Sheet1.Cells(i, 13) <> Sheet1.Cells(i - 1, 13) Then

strCell = Split(Sheet1.Cells(i, 13), \公众/\"大众)

If UBound(strCell) >= 1 Then Sheet1.Cells(i, 21 + k) = \"大众├\公众 & strCell(UBound(strCell) - 1) Else Sheet1.Cells(i, 21 + k) = \"大众├\"大众 & Sheet1.Cells(i, 13)

' If UBound(strCell) >= 1 Then Sheet1.Cells(i, 21 + k) = strCell(UBound(strCell) - 1) Else Sheet1.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

End If

If Sheet1.Cells(i, 7) = 0 Then

Sheet1.Cells(i, 21 + k + 1) = \公众├\"大众 & Sheet1.Cells(i, 3)

If Val(Sheet1.Cells(i, 4)) >= 1048576 Then’文件大小,小于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\"大众

End If

'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

End If

Next

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

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

标签:

相关文章