如何匯出百度網盤詳細目錄結構-超詳細的
百度網盤大家都在用,有時候希望把自己的檔案目錄結構給匯出來,能形成一個檔案樹的形式,無奈網上找了好多資料都無果,大多數說的是在瀏覽器裡控制檯下,那個方法已經不適用,而且只能匯出一級目錄,求人不如求己,無奈之下決定自己動手豐衣足食,下面小編手把手教你怎麼把百度雲網盤裡的檔案目錄機構給匯出來。
首先,你要有百度雲管家客戶端(注意是PC版的哦),開啟其程式所在目錄。
右鍵點選百度雲客戶端快捷方式---選擇“開啟檔案位置(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程式碼如下:
[php] view plain copy print?- <?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有所瞭解,那就選擇這個方法吧,如果不瞭解的話建議還是選擇上一個,下面看程式碼:
[plain] view plain copy print?- 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
生成目錄樹後複製到詞本里是這個樣子的:
以上是兩種方法,供大家參考。