更新时间2019-08-09 06:27:57
# encoding=utf-8
from time import sleep
import os, shutil
usb_path = "/Volumes/"
content = os.listdir(usb_path) # os.listdir(路径)返回路径下所有文件以及文件夹的名称
while True:
new_content = os.listdir(usb_path) #每隔三秒扫描一次/Volumes/
if new_content != content: # 如果发现异常,即多出一个文件夹,则退出
break;
sleep(3)
x = [item for item in new_content if item not in content]
# 找到那个新文件夹,返回包括新文件夹string类型名称的列表,这个表达方法很pythonic
shutil.copytree(os.path.join(usb_path, x[0]), '/Users/home/usb_copy')
# shutil.copytree
不同语言应用场景不同的,上面的python程序可用就不必费心改为C++了
C++要完成上面的功能,程序有点多,给你思路自己完成下
程序关键是os.listdir,C++没有现成的函数的,要用
FindFirstFile/ FindNextFile(二个windows专用SDK函数遍历目录文件的
或用opendir/readdir遍历(linux)
返回所有文件(及信息)到一数组,然后同样用Sleep(3000)延时3秒,再判断它是否与上次相同
同样遇新文件退出并输出,程序没有难度,但有点繁。