创建自己的全文索引库2022.03.21
第1步:用电脑软件RaiDrive Standard Edition Version 2021.12.35 通过中国电信的公网动态IP地址和群晖网络存储服务器的DDNS或者华硕无线路由器的DDNS和华硕无线路由器的端口转发(端口映射)和群晖网络存储服务器的SFTP文件服务异地远程映射网络驱动器(我选择S:作为我的映射网络驱动器的磁盘盘符,并保持长期固定不变)(Map Remote Servers as Local Drives via SFTP)。
也可以选择使用Windows自带的映射网络驱动器功能连接群晖网络存储服务器的SMB文件服务来映射网络驱动器。
也可以选择使用NetDrive2 v2.6.16、WebDrive 2019、AirLiveDrive、CloudDrive、DriveMaker、SFTP Drive、ExpanDrive或者其他有类似功能的软件来映射网络驱动器。
当网络不稳定或者软件不稳定时可以使用多个DDNS和多个盘符映射软件来映射多个虚拟磁盘备用。
第2步:把以前的旧文件用Total Commander 10.00过滤筛选之后复制到映射网络驱动器S:中,所有文档表格应当在映射网络驱动器S:中新建、重命名、移动、编辑、分享和删除,如有其他位置的文件请及时筛选分类整理保存到映射网络驱动器S:中。可以用ES文件浏览器安卓版的FTP功能连接群晖网络存储服务器的SFTP文件服务异地远程访问群晖网络存储服务器中的文档表格。
第3步:用电脑软件 Vistanita Duplicate Finder 3.9.6 批量删除映射网络驱动器S:中的重复文件。
第4步:用AutoHotkey脚本“FenLei.ahk”对以前的旧文件按照文件扩展名进行批量分类整理。
;
; 按照文件类型批量整理文件的AutoHotkey脚本
;~ 在大批量移动文件之前必需先询问一下
MsgBox, 4, , "Loop All Files in ScriptDir"`n"是否立即按照文件类型批量整理子目录中所有文件?"`n`ncontinue?
IfMsgBox, No
ExitApp
MsgBox, 4, , "Loop All Files in ScriptDir"`n"是否立即按照文件类型批量整理子目录中所有文件?"`n`ncontinue?
IfMsgBox, No
ExitApp
loop,9
{
FileCreateDir,%A_ScriptDir%\F
FileCreateDir,%A_ScriptDir%\!Classify
;~ 为重要文件的文件夹写上前缀标记
global importantmark
;~ global ProgressParam
;~ ProgressParam:=0
loop,Files,%A_ScriptDir%\F\*.*,R ;递归遍历穷举文件夹和子文件夹中的文件
{
;; 进度条窗口不可以移动,并且比较烦人
;; ProgressParam:=ProgressParam+0.5
;; if(ProgressParam>99)
;; ProgressParam:=0
;; ;~ 进度条
;; Progress, %ProgressParam%, %a_loopfilename%,"Moveing Files ...", "Classify And Arrange Files in Folder F"
if(A_LoopFileExt="")
{
IfNotExist,%A_ScriptDir%\!Classify\NullFileExt
FileCreateDir,%A_ScriptDir%\!Classify\NullFileExt
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\NullFileExt\%A_LoopFileName%
Sleep,9
continue
}
importantmark:=""
if((A_LoopFileExt="docx") or(A_LoopFileExt="xlsx") or (A_LoopFileExt="jpg") )
importantmark:="1_"
if((A_LoopFileExt="ani") or (A_LoopFileExt="au3") or (A_LoopFileExt="flac") or (A_LoopFileExt="avi") or (A_LoopFileExt="doc") or (A_LoopFileExt="dotx") or (A_LoopFileExt="xls") or (A_LoopFileExt="xltx") or (A_LoopFileExt="dot") or (A_LoopFileExt="xlt") or (A_LoopFileExt="ISO") or (A_LoopFileExt="GHO") or (A_LoopFileExt="flv") or (A_LoopFileExt="jpeg") or (A_LoopFileExt="mp4") or (A_LoopFileExt="png") or (A_LoopFileExt="ppt") or (A_LoopFileExt="pdf") or (A_LoopFileExt="7z") or (A_LoopFileExt="ahk") or (A_LoopFileExt="bat") or (A_LoopFileExt="chm") or (A_LoopFileExt="cmd") or (A_LoopFileExt="dot") or (A_LoopFileExt="exe") or (A_LoopFileExt="ico") or (A_LoopFileExt="mdb") or (A_LoopFileExt="mkv") or (A_LoopFileExt="mp3") or (A_LoopFileExt="pas") or (A_LoopFileExt="rar") or (A_LoopFileExt="txt") or (A_LoopFileExt="rmvb") or (A_LoopFileExt="vbs") or (A_LoopFileExt="zip"))
importantmark:="2_"
;~ MsgBox,% A_LoopFileSizeMB
IfGreater,A_LoopFileSizeMB,500
importantmark:="3_Big500MB_"
;~ 如果当前文件是此脚本本身那么跳过当前循环的剩余部分并继续下一次循环递归遍历穷举文件
if(A_ScriptFullPath=A_LoopFileFullPath)
{
continue
}
;~ 如果当前脚本所在目录没有当前循环的文件则直接移动文件并继续下一个循环
IfNotExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
{
IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
Sleep,9
continue
}
;;如果当前循环的文件就在当前脚本所在目录中那么跳过当前循环的剩余部分并继续下一次循环
ScriptDirLoopFileName=%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
if( ScriptDirLoopFileName=A_LoopFileFullPath)
{
continue
}
;~ MsgBox,%A_LoopFileFullPath%
;~ 重命名重复文件
DuplicateFileCount:=1
loop
{
IfExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
{
DuplicateFileCount=% ++DuplicateFileCount
continue
}
else
{
IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
Sleep,9
break
}
}
}
}
MsgBox, 64, , %A_ScriptDir%"All Files in ScriptDir is Classifyed And Arranged"`n"恭喜你, 已经按照文件类型完成所有当前脚本所在目录和子目录中文件的分类整理"!
;~ MsgBox, 64, , "操作失败的文件共有"%ErrFileCount%"个,详细出错原因列表见ErrFileList.txt文件"!
return
; # 此AHK脚本结束 #############
大佬,这是相当于用自己电脑映射了一个云笔记吗?
不是云笔记,云笔记不支持音频和视频的文件夹视图界面和本地化文件夹操作习惯环境响应,这里指的是云存储空间。
特点1,同时损坏叁块硬盘之后可以正常读写文件,不易丢失文件(ds920+的4块硬盘组成RAID 1 镜像存储池)。
特点2,可以在手机,电脑,平板电脑,智能电视机上随时随地打开文件。
特点3,全文索引,高速搜索,可以在5分钟之内,通过正文内容片段,拼音全拼,或者拼音首字母搜索文件(需要调用Delphi的OnChange()事件无需回车动态搜索和PYIndex()自制函数拼音转换函数)