用坛子里推荐的
目前覆盖游戏存档的时候没有发出提示音的功能
作者貌似很忙没时间改,所以想找个临时解决方案
理论上应该检测md5,但是能检测文件修改时间应该就够了
用火绒自定义规则监控路径下的创建、修改操作
就是火绒的汇报有点烦,一个文件弹一次窗,你可以修改规则让他只监控存档里某个特定文件
会autohotkey基础知识的话,可以搜一下 watchfolder这个lib
lib 是指软件?
在这句话中,“lib” 是指 “library” 的缩写,意思是一个编程库或工具包。它通常包含一组功能和预定义的代码,可以帮助开发者完成特定任务。在这个上下文中,“watchfolder” 可能是一个 AutoHotkey 脚本库,用于监控文件夹的变化。
如果是文本文件的话直接用git管理吧,写个脚本定时运行git status 来检查是不是有文件被修改了
让chatgpt用 PowerShell写代码,不过可能无法发出声音,可以弹窗之类的
我给你现写一个
多谢,超好用~
ai问一下就有了
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import winsound
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print(f'文件被修改: {event.src_path}')
play_sound()
def on_created(self, event):
print(f'文件被创建: {event.src_path}')
play_sound()
def on_deleted(self, event):
print(f'文件被删除: {event.src_path}')
play_sound()
def on_moved(self, event):
print(f'文件被移动: {event.src_path} -> {event.dest_path}')
play_sound()
def play_sound():
# 播放系统提示音
winsound.Beep(1000, 500) # 频率1000Hz,持续500毫秒
if __name__ == "__main__":
path = "C:\\path\\to\\your\\folder" # 修改为你想要监控的文件夹路径
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(10)
except KeyboardInterrupt:
observer.stop()
observer.join()
这么厉害,说写就写,点赞
对于有相同需求的 Linux 用户,可以考虑使用这种方法:
Nodejs 可以使用 fs.watch 来监听软件的变动,就像这样
捕获事件后可以通过 ffplay 无窗口播放音频文件
完整代码如下
import fs from 'node:fs';
import child_process from 'node:child_process';
fs.watch('/tmp/c/a.txt', a => {
console.log(`file is changed.now time is ${new Date()}`)
child_process.exec('ffplay -nodisp -autoexit /tmp/c/info.mp3', () => {
console.log('播放完毕')
})
})
PS: 当前运行的 node 版本是 v23.1.0,没有依赖第三方模块。也可以考虑通过 fyi 软件包来发送 KDE Plasma 的桌面通知
能加一个是由什么进程创建的吗?
谢谢认可
刚注册坛子就看到这个很有意思的需求,而且技术上不难,就手痒实现了下
看了下很难实现,基本都是监控进程,可以看到进程做了什么,比如这个软件
设置过滤条件为包含指定文件夹,可以看到它创建了哪些文件
Python的watchdog
应该可以很好的实现这个需求
這三款軟體可以試試
freefoldermonitor
nirsoft 有出2款 folder_changes_view 以及 file_activity_watch ,有支援哪支程式更動檔案