个人文件管理和备份策略

一、文件重要程度分类

1、一级(特级):绝对不能丢的,丢了会是巨大的损失,甚至是灾难性的

特点1:

    1)一定会用到的、非常重要的资料,比如合同、报销单,

    2)丢了会带来巨大的麻烦,或者间接造成很大的时间或金钱的损失;

特点2:

    1)很可能会用到的资料,

    2)是花了很多时间和精力才获得的(自己制作或收集)资料,

    3)或者(从某处获得的)稀有珍贵的资料,

    4)丢了就无法重新获得,或者需要巨大的代价才能重新获得;

特点3:

    1)非常珍贵的珍藏版纪念文件,独一份的或稀有的,代表一种珍贵的记忆,十分舍不得丢;

特点4:

    1)金钱角度看:这个资料很重要,以至于当它丢了时,宁愿花100元以上甚至1000元也要把它找回来!


2、二级:可以丢,但是丢了会有一定影响,或造成小的麻烦

特点1:这个资料有一定利用价值,只是不太明显,可能会用得上,但也可能永远都不会用,即使丢了,大不了不用嘛。

特点2:有一定的纪念价值,但不很重要,即使忘记这一段也没啥。

特点3:金钱角度看:这个资料丢了时,可以不用,大多数时候不太愿意花钱去把它找回来,偶尔确实要用到,丢了损失也不大(花几十元或者一个小时内就能重新得到)。

注意:时间就是金钱,如果花二三十块钱就能搞定的,就不愿意花两三个小时去折腾。我的时间价值是一小时=20~100元。


3、三级:丢了无所谓,可要可不要的

这个资料只是冗余备份,或临时保存,谈不上什么重要性

如果这个资料丢了,OK,想不出来有任何重要的影响,丢了就丢了!


二、其他分类方式

1、按使用频率分类

  1)常用

  2)不常用(罕用)


2、按文件大小分类

  1)小文件——单个在50MB以内;

  2)较小文件——单个不超过100MB / 200MB / 300MB

  3)较大文件——单个文件通常在100MB以上,甚至1GB

  4)大文件——单个文件达到1G甚至50G


3、按文件类型分类

  比如 软件、音乐、电影、代码、文档、图片、照片等


三、文件管理的指导思想

1、保证重要文件(一级、二级文件)永不丢失

    一级、二级文件至少要有两个独立的备份,一级文件建议有2个普通备份+1个灾备备份。


2、方便日常使用和管理

    考虑如下几种情况、场景:

    1)文件需要在多终端切换使用(不同PC,或PC与移动设备之间)

比如,ZOA的文件和某些工作相关文件,需要在家里的PC和公司的PC上使用。

比如,某些图片、音乐,需要在电脑上和手机上切换使用。

    2)文件需要在 “没有电脑、只有手机(可联网)” 的情况下使用

比如外出办事、出差,没带电脑,但需要用到一些资料;

    3)文件需要在有网络,但是没带任何移动存储设备(包括手机)时使用;

此时文件只能通过网络获取;

    4)文件需要在 “无法联网(或手机网络信号不好)” 的情况下使用

比如去客户那里,需要用到一些大文件,但是对方PC电脑无法联网;

比如去某山村角落里,手机网络信号很差,但需要用到某些文件。


四、文件管理思路

1、怎么做到“文件在无法联网的情况下使用”?“在没有电脑、只有手机的情况下使用”?

    解决办法:预计什么时候会发生这种情况,提前把需要的文件拷贝到能够随身携带的移动存储中(U盘、移动硬盘、手机)。如果使用U盘,为方便手机使用,建议带一个OTG转接头,但有些手机不支持OTG;如果只带手机,为方便电脑使用,建议带一根专用数据线。推荐使用电脑和手机通用的移动硬盘,平时不占手机空间,而且插上电脑和手机都可以用。

    有时候无法预计什么时候要用到某文件,故建议把比较重要和常用的文件都放到随身携带的移动存储中(如手机)

2、怎么做到“文件在多终端切换使用(不同PC 或PC与移动设备 之间)”?

    在网络通畅的情况下,最简单的办法就是使用网络云盘自动同步文件夹(包括手机上的文件夹),并且有APP,手机上也可以管理和使用这些文件;局域网内可以使用P2P传输工具(如飞秋);考虑到无网环境,或者网络同步比较慢的情况,可以使用高速移动硬盘手动同步文件。

    但是目前的问题在于,传统的网盘不支持同步手机上的文件夹(但是有第三方的小工具可以用,比如微力同步、Syncthing等),解决办法就是使用Syncthing等多终端同步工具定期或手动触发同步。

3、怎么做到“文件在有网络,但是没有带任何移动存储设备(包括手机)时使用”?

    这种情况下必须通过网络获取,建议定期将重要和常用的文件同步到网盘上。但目前的问题在于,免费的容量大的网盘,比如百度网盘不支持文件增量同步,而坚果云这种网盘容量又太小。临时解决办法是,将文件按大小分类,结合百度网盘和坚果云各自的有点,大文件存百度云,小文件存坚果云。

4、如何保证一级、二级文件永不丢失?

    首先,多副本,保证任何时刻,都至少有1个副本存在。即使手抖删掉了一个(或硬盘突然坏掉),还有副本可以恢复。

    其次,考虑副本的灾备,极端情况下,如果放在家中的两个磁盘上,家被大火烧了,那文件就永久丢失了。所以一级文件至少要有一个异地备份(二级文件可以不考虑)。


5、总结

存储方式:

    网络存储:网络增量智能备份(坚果云)  [ + 网络手动备份(百度云)]  [ + 网络多终端同步存储(坚果云)]

    本地存储:移动多终端同步存储(Syncthing) + 增量智能备份硬盘(FreeFileSync)

    (具体说明见下文)


五、具体方案

1、多终端同步文件方法(双向同步,在不同的PC和手机上使用)

    方式一(推荐,主要方式):以移动硬盘为中介,在两个终端同步数据。(好处是不需要在同一个网络中,缺点是Android下没有文件同步的工具)

    方式二(推荐,辅助方式):使用微力同步或Syncthing,直接两个终端点对点同步;(缺点是需要设备在同一个局域网中,而且是全自动双向同步、没有人工确认,所以最好是开启版本控制、以免误删)

    方式三(推荐,辅助方式):以网盘(坚果云)为中介,在两个终端同步数据;(好处是无感知准实时自动同步,缺点是需要良好的互联网网络)


2、增量智能备份——在任意一个备份副本上新增、移动、删除文件,都可以自动保持所有副本一致;

        1)目前本地文件借助 FreeFileSync、Beyond Compare等工具可以做到PC端的智能同步,

        2)通过微力同步、Syncthing等工具可以做到包括移动端在内的多设备之间的智能同步

        3)而网盘只有坚果云的PC版本有这个功能,且手机端文件暂时无法使用云端双向同步)

注意:

Syncthing非常强,但是鉴于我的手机OS经常把Syncthing的同步记录隐藏文件给删除,导致Syncthing丢失同步记录。而且Syncthing在自动同步文件时,没有人工确认,实践下来容易误删文件(解决办法是开启回收站和版本控制)。

所以,我在自己ZOA项目中用Java写了一个基于HTTP传输的手机文件与PC文件的同步工具,支持手工确认后再同步。


目前的规划是:

    手机文件使用ZOA同步给PC(双向),同步目录包括 D:\__SYNC\00-MOBILE0(公共)、D:\__SYNC\10-ONEPLUS(单设备)等,再通过PC使用FreeFileSync同步给移动盘的 __SYNC4(设备同步) 目录;

    PC文件使用FreeFileSync同步给移动硬盘,同步目录包括  桌面、下载、桌面微信文件、__SYNC1(二级文件)、__SYNC2(代码等)等,同步到移动盘的 __SYNC4 / 20-WORKPCn(n=0, 1, 2...)目录;

    移动硬盘使用FreeFileSync同步备份到家里电脑的硬盘上。


    注意到FreeFileSync只支持Windows和Linux,不支持Android手机文件夹同步,那么Android系统的目录与目录之间怎么同步?答案:我写了个工具ZOA,可以在Android系统的两个目录做双向同步。但是一般没必要这么做。简单的方式如下:

方法1:根据情况,直接将一个目录A拷贝,覆盖另一个目录B,或者,直接删掉其中一个目录,再把另一个目录拷贝过去。

方法2:借助Syncthing用电脑做中介,先将文件同步给电脑端的C目录,再将C目录同步给手机端的B目录。

    

    另外,怎么将多个文件夹,同步给一个文件夹?(即二合一、多合一,并且保持同步?)

    目前的同步工具,都不支持这个功能,变相的实现方法如下:

    先将N个源文件夹,拷贝到一个文件夹A下,然后再用文件夹A与目标文件夹进行同步。

    实际案例,我有两个文件夹:

D:\__SYNC0\90zoa\zoa-static

D:\zoa-tomcat\src\META-INF\resources

    要合并同步给 手机端的一个目录:

/storage/emulated/0/jetty/webapps/zoa

    怎么办?同步前,先创建临时目录A,将zoa-static和resources拷贝到A,然后再把A同步给手机端的zoa。


3、对于一级文件中的(网络备份存储文件) 应占 (非网络存储文件) 的80%以上,可以接受有20%以下的一级文件暂时没有网络备份(但是一定是有多个副本);二级文件,在有条件的情况下,也应尽量都备份到网络上。


4、网络手动备份(百度云):只是挑选一些一、二级文件上传到百度云上,这些文件只做备份,不做同步


5、网络增量智能备份(坚果云):使用家里的电脑,同步所有的坚果云文件。部分常用目录也可以用其他电脑去同步(在流量有限的情况下,可以把家里的电脑当做和云端同步的HUB,即先将其他冷备的目录同步到移动硬盘上,然后再同步给家里的电脑,通过家里的电脑再同步到云端)。

目前的规划是:

    1)坚果云上建立智能备份目录:__00-work、__02-pers等,存放特别重要的但不是很常用的一级文件(冷备)。

    2)不是特别重要的且常用的一、二级文件(热备),存放在手机端的00-MOBILE0(公共)目录中。


6、网络多终端同步存储(坚果云):所有终端,都直接和云端保持同步,不需要先同步给移动硬盘,再同步给家里的电脑。

目前的规划是:

    坚果云上建立多PC同步目录:00WORK、20PERS、50TEMP、90zoa等,常用的同步文件(二级和三级)。


六、文件存储组织方式(分类)

把所有文件存放到以下几个顶级目录:

SYNC0--云同步文件;云备份文件;

SYNC1(本地备份文件 - 较大或较杂还没来得及备份到云端)

    (分多个同步目录,也相当于所有设备公共通用的同步文件);

SYNC2(本地备份文件 - 比较特殊的部分,包含非常多的甚至上万个的小文件,例如code,maven库等)

SYNC3(本地备份文件 - 超大二级文件-单个文件或特定目录超过4个G,比如电视剧目录30个文件就将近6G)

SYNC4--设备同步文件(分多个同步目录,一个目录可对应一个设备或多个设备同时同步)

SYNC8(本地备份文件 - 三级次要文件 - 无论大小)

    其中 SYNC2 和 SYNC8 ,由于文件可能巨多,每次同步很耗时,所以建议 区分 冷/热 文件,

    比如 __SYNC2\52-Project-and-Code\FM 这个目录,下面有许多文件(夹),这些文件(夹)本身几乎是一次性的同步过来,以后不会发生变化,但是FM这个文件夹,会经常变动(新增内容),怎么办?

    解决方法(A):将 不会发生变化的 又 包含巨多文件的 文件夹(冷文件夹),打包压缩。压缩后就是一个文件,大大减少同步耗时。

    这样做主要的问题在于,不方便修改(新增、修改、删除里面的文件),假如压缩包大小500M,每次修改一个文件,就要重新打包压缩,如果要同步甚至上传到网盘,都十分耗时。所以该方法不适用于网络传输,那种存放到网盘上的文件,需要从网络获取的文件。

    所以,将目录压缩,要考虑两点:1. 是否为冷文件,几乎不会更新;2. 是否不需要存到网盘上

    解决方法(B):同步时,将 冷文件夹 排除,不care这些文件夹。最好的方法就是,在 冷文件夹 目录下面,放一个.ingore文件标识,同步工具发现文件夹下面有.ignore文件,就忽略整个目录。但是,目前的同步工具(FreeFileSync)还做不到这个功能,而且市面上就没有其他工具能够替代FreeFileSync的一半。但是FreeFileSync可以在配置文件中排除指定目录,这样做也能达到目的,但是不方便维护。我发现syncthing支持.stignore,但是.stignore文件只支持放在根目录下面,然后在.stignore文件中配置忽略路径,实际上和FreeFileSync在xml里面配置有什么区别呢,还不如FreeFileSync图形界面操作方便。文件夹下面直接放.ignore文件最方便,但是这些工具都不支持,如果每个目录默认都支持.ignore的话,扫描比较费时吧。我想到一个办法:我自己写一个程序扫描.ignore文件,然后把扫描出来的目录添加到Syncthing或FreeFileSync的配置文件中。

    解决方法(C):单独建一套目录,比如 根目录 __HOT 代表容易变的内容,把容易变的内容和不容易变的内容分别存放在不同的根目录下面。这样做最大的问题在于,要维护两套一模一样的“目录”,无论是维护,还是查找文件,都大大的不便。好处是,冷目录 下面的内容,只有新增时才需要同步(但是,新增文件不是很正常吗,这算得上什么好处?)

    总结:经过研究,我采用 方案A+方案C 配合使用,甚至方案B也可以配合使用。将那些包含超多小文件的目录,而且几乎不会修改的、也不用传网盘的文件夹,打包压缩成单个文件。但是那些要传网盘同步的或者会偶尔更新的冷目录,则使用ignore排除的方式。


文件结构规划如下:

1、PC电脑

PC硬盘
│
├─__SYNC      用于移动端同步文件的存放
│    │ 
│    ├─00-MOBILE0  一级+二级常用文件-用于移动存储
│    │    ├─00-PIC珍藏 
│    │    ├─01-PIC资料
│    │    ├─03-PIC卡包 
│    │    ├─10-MUSIC
│    │    ├─x0-.....
│    │    ├─90-TMP
│    │    └─91-BACK
│    │ 
│    └─10-ONEPLUS 我的一加手机
│      ├─Camera   同步手机的Camera
│      └─Pictures 同步手机的Pictures
│ 
├─__SYNC0     用于云端同步文件的存放
│    ├─__00-work  工作相关的一级备份文件
│    │ 
│    ├─__20-pers  非工作相关的一级备份文件
│    │ 
│    ├─00WORK   多设备云端同步文件(工作)
│    │ 
│    ├─20PERS   多设备云端同步文件(非工作)
│    │ 
│    ├─50TEMP   多设备云端同步文件(临时同步)
│    │   
│    └─90zoa    多设备云端同步文件(ZOA-个人博客)
│
├─__SYNC1     本地二级文件的临时同步存放
|
├─__SYNC2     本地二级文件的临时同步存放(同步慢的特殊文件,例如代码)
|
|─__TMP00     本地临时备份文件(这些文件已备份到移动盘了,磁盘不够时可直接删除)
|
└─__TMP20     本机专用的三级次要文件(类似于SYNC8,可要可不要的文件,暂时留着)

注意,__SYNC是移动端文件,__SYNC0是存放云端同步文件,__SYNC1、2 的作用则是存放PC本机各种需要同步的重要文件。

此处的 __SYNC1 相当于现在的 User Desktop + User Download + User Documents Wecharts Files 等,

而此处的 __SYNC2 相当于 现在的 0sync_local + maven-repo + vgrantbox + frontend 等。


2、移动硬盘

移动硬盘
│
│ 
├─__SYNC0     用于云端同步文件的存放
│
├─__SYNC1     用于二级文件和临时存放的一级文件
│    │ 
│    ├─00-MOBILE0
│    ├─00-work
│    ├─10-pub
│    ├─20-pri
│    ├─30-temp
│    ├─40-software
│    ├─50-media
│    ├─60-camera-t
│    ├─61-camera-me
│    ├─62-camera-sql
│    ├─63-camera-mm
│    ├─70-music
│    └─80-movie
│
├─__SYNC2     用于存放特殊的二级文件(代码等文件数据多、同步较慢的)
│
├─__SYNC3     用于超大size的一级、二级文件
│
├─__SYNC4     用于设备同步的文件
│    │ 
│    ├─10-ONEPLUS 我的一加手机
│    │ 
│    └─20-WORKPC0 我的工作电脑0
│
└─__SYNC8     用于三级文件的临时存放


七、多操作系统(OS)

1、操作系统的安装方式

主要有:原生PC硬盘安装,虚拟机安装,移动盘安装。

移动盘安装:目前,移动固态硬盘安装的性能,已经能够接近原生PC硬盘安装的性能,考虑到方便携带,我的主力系统安装在移动硬盘上(WTG——Windows To Go)

原生PC硬盘安装:原生PC安装一个包含常用且对系统侵入性小的部分软件。日常并不使用这个系统,仅供应急时使用。原生的稳定版PC系统做两重备份(Win7备份+傲梅一键备份)。

虚拟机安装:虚拟机系统主要优势是,1)可以与宿主机一起启动、交互,2)启动、关闭、创建、合并比WTG更加方便。因此,一方面作为Vagrant+Docker部署开发服务,另一方面,安装一些临时软件、做测试、做试验时,虚拟机更方便。

(注意,有了Windows11后,Linux、Android就可以直接部署在WSL、WSA上了,但WSL没有普及之前,还是虚拟机兼容性更好,而且装Windows还得用虚拟机)


2、操作系统类型

1、日常用 Windows 和 Linux,但自从WIN 10出来之后,比较喜欢,可以作为主力系统。

    但是,如果只有一个Windows系统的话,安装各种各样软件之后,恐怕越来越臃肿,所以考虑多个Windows:

1)  一个为日常用,以办公为主,以个人必备需求为辅,保持稳定。

    常用系统,稳定为主,在安装有影响的软件、更新前,都要先备份、试验,安装完使用一段时间稳定后,再合并到主干上,且主干版本6个月备份一次,备份最近12个月的稳定版本,每打一个版本,要附上版本说明。

2)  另一个为偶尔用,各种不常用但是需要保留的软件,都安装在上面,只要没玩坏,就一直用。

    每安装一个有影响的软件或更新前,都备份一次,原则上,保留上一次和上上次的版本。

    但是,如果玩坏了,比如,安装某一个软件后,系统变慢了,或者影响了其他重要功能,则应该单独为它打一个版本,不更新到主干上,权当一个特殊镜像用。


2、下面说一说Linux系统(备用)

    为什么要使用Linux系统呢?而且使用Linux时还要启动一个Windows做辅助,实在麻烦。

    对于操作系统,最主要就是常用软件,下面是一些常用软件列表:

NotePad++
Bandizip
Office (Word、Excel、PPT)
Sogou输入法
Chrome浏览器
微信
有道云笔记
坚果云
钉钉
飞秋
XSHELL
Eclipse
NaviCat
Sublime Text 3
Bandicam

    我相信,大部分在Linux下都可以找到替代产品,但是没有Windows产品那么主流好用,比如XSHELL、钉钉。只有少部分在Linux下运行(有可能)更好,比如Eclipse。好吧,貌似我成功说服了自己不要把Linux当做主力系统,我现在用着Linux完全是为了逃避公司要求在Windows上安装杀毒软件和监控软件。

    我没用过Mac,不知道Mac上的软件是否也丰富、好用,比如输入法(Linux的输入法是不太好用的)。后面抽空搞个高配的黑苹果试试。

    好吧,Linux成不了主力,但是必须是备用,主要是某些软件、工具,需要在Linux上测试使用。


3、什么需要用到虚拟机(VM)呢?

    虚拟机优点:可以随时新建和删除,可以拷贝到U盘随身携带。

    这些优点,各种To Go系统也有,所以没必要用虚拟机?

    虚拟机还有一个优点:可以和宿主机同时启动,这一点是Linux To Go不具备的。

    但什么时候需要使用图形界面的虚拟机?肯定是为了安装Linux或Windows下图形界面的软件。什么时候需要在Linux中使用图形界面软件?做开发时,有时候Windows的软件安装有问题,会尝试在Linux中使用。那么Windows呢?有时想用其他版本的Windows或者安装一些不常用的软件,比如在网上找个了图片处理软件Fotosizer的破解版,只是临时用一下,又怕它有病毒,所以不想安装在常用系统中,怕它把系统搞坏。

    所以综上,不需要Linux To Go,只需要虚拟VM装几个Linux和Windows供临时使用即可。虚拟VM挺强的,我Android开发环境就是在Ubuntu上安装的,可以外接USB调试,可以外接USB网卡。

    另外,开发环境大量用到虚拟VM,并使用Vagrant管理。


七、移动盘分类及用途

刚需5个盘:

1、文件备份:除去家里的PC硬盘,还需要一个移动硬盘(1TB以上,目前已有希捷)。

2、WTG系统盘:SSD 256GB以上(目前已有1个1TB的闪迪)

3、VM盘:可与WTG盘共用。


背景说明:

上面讲到,文件备份至少需要一个移动盘。

除此之外,还有如下需求:

1、装系统的工具盘(WIN、Linux等),最好是有两个(其中一个WIN PE的恢复盘),一个16G~32G,速度快一点的。

2、WTG(Windows To Go)或者Linux To Go移动盘,必须是固态SSD盘,建议128G以上。

3、VM盘,供VM系统用,这个盘上也可以存放其他临时资料,必须是固态SSD盘,建议256G以上。

    WTG盘、VM盘可以是同一个吗??

4、供虚拟VM、不同宿主机共享的磁盘。

    1)虚拟VM可以共享宿主机的硬盘,但如果宿主机的硬盘为Linux系统的,则Windows上看不到,所以如果虚拟VM非要共享宿主机的硬盘,建议是Windows的盘。

    2)如果是多宿主机和VM共享,例如Maven仓库,两个方案,1是使用备份盘同步(但是备份盘体积较大,不方便携带),2是使用一个小巧的移动盘,但不能是WTG盘和VM盘。

    3)这个盘,不要求为SSD,但是常用,建议速度要给力,最好是64G以上。

5、一个小U盘放车上,听歌用,存了30G左右的无损音乐。


总结:需要4个小U盘,1一个大移动硬盘,2个小移动SSD硬盘。


一次数据丢失的案例(硬盘损坏)

    2020年6月13日,打开家里的电脑,发现硬盘机械硬盘通上电没反应了,折腾一番最终确认硬件坏了。

    数据库恢复要500元。还好是机械硬盘,把将磁片取下来通过专业设备可以恢复数据。要是固态硬盘,数据就无法恢复了。

    但是上面说了,我有个多副本的备份机制,有个1T的移动硬盘,和电脑的硬盘是双向同步的。

    但恰好从大约6月1日起,就找不到移动硬盘了,当时也没引起重视(心想丢了就丢了,反正资料在家里的硬盘上都有备份,何曾想到,家里的硬盘紧接着也坏了)。

    既然电脑硬盘坏了已是事实,但回想硬盘上还是有些重要的资料(幺儿的艺术照,妈的艺术照,价值1000元左右),所以特别想把资料找回来,唯一的救命稻草,是找到移动硬盘,后面到处翻找,终于找到了,但是发现移动硬盘上并没有上述照片,再回想,电脑硬盘上应该有一些文件夹,没有和移动硬盘做同步,而且这么重要的照片,我居然没有备份,失误啊!

    吸取教训,改进如下:

    1、做到真正全量同步,哪怕是临时文件、次要文件,也给我做至少双副本!

    2、特别重要的文件,要及时上传网盘备份或者做成三个以上副本。

    3、一旦因为硬盘损坏、丢失,造成了数据单副本的状态,就应该立即备份成双副本!

    4、两个以上副本,尽量保证其中一个的可用性较高。


一次数据丢失的案例(文件双向同步失误)

    手机当U盘,上面有很多重要文件,而且经常更新:使用Syncthing和电脑硬盘保持文件双向同步。

    一次不小心将手机端的同步文件夹设置成了  “单向同步:仅接收”,然后不知道为什么电脑端的文件夹之前没有完全同步(电脑端的文件比手机端的文件少),后面单向同步后就删除了手机端上“多出来”的几个重要文件。也无法找回,这下就郁闷了。

    吸取教训,解决方案如下:

    方案一:针对双向同步,最好是在同步删除或更改之前,有一个确认按钮。点击确认后,才最终执行。

    方案二:开启版本控制(类似于回收站,但是比回收站功能强)。

    由于Syncthing不支持确认,但是支持和版本控制,所以强烈建议开启版本控制(每个终端都得手动开启)。

    后续计划:Syncthing的作用主要是同步Android手机的文件,而且不需要实时同步(只需要手动触发同步)。所以,能不能自己写个程序去做同步,这样安全可靠性可以自己控制。Android上可以部署自己的Java程序(zoa),然后写一个程序将PC系统上的文件和手机上的对比,发现不同的,触发双向的同步操作。貌似很容易实现。


End

© 2009-2020 Zollty.com 版权所有。渝ICP备20008982号