V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ColoThor
V2EX  ›  问与答

火绒要怎么定义规则保护文件夹,自定义的防护规则失效

  •  
  •   ColoThor · 2022-09-02 18:16:29 +08:00 · 865 次点击
    这是一个创建于 838 天前的主题,其中的信息可能已经有所发展或是发生改变。

    创建了一个火绒自定义防护规则,保护文件夹,但是未生效,folder-reader.exe 是自己用 go 写的,另外测试了保护单文件是可以的

    截图

    完整代码:

    package main
    
    import (
    	"bufio"
    	"fmt"
    	"io/ioutil"
    	"os"
    	"os/signal"
    	"runtime"
    	"strings"
    	"syscall"
    )
    
    /**
     * 读入输入
     */
    func readPrint() (bool, string) {
    	fmt.Println("input file path:")
    
    	inputReader := bufio.NewReader(os.Stdin)
    	input, err := inputReader.ReadString('\n')
    	if err != nil {
    		errInfo := fmt.Sprintf("read input error: \n%s\n", err.Error())
    		fmt.Printf(errInfo)
    		return false, ""
    	}
    	input = strings.ReplaceAll(input, "\r", "")
    	input = strings.ReplaceAll(input, "\n", "")
    	return true, input
    }
    
    /**
     * 读取文件
     */
    func fileRead(path string) {
    	exists, err := pathExists(path)
    	if err != nil {
    		errInfo := fmt.Sprintf("path check error: \n%s\n", err.Error())
    		fmt.Printf(errInfo)
    		return
    	}
    
    	if !exists {
    		errInfo := fmt.Sprintf("path not exists: \n%s\n", path)
    		fmt.Printf(errInfo)
    		return
    	}
    
    	if !isFile(path) {
    		errInfo := fmt.Sprintf("path is folder : \n%s\n", path)
    		fmt.Printf(errInfo)
    		return
    	}
    
    	file, err := os.Open(path)
    	if err != nil {
    		errInfo := fmt.Sprintf("fild open error: \n%s\n", err.Error())
    		fmt.Printf(errInfo)
    		return
    	}
    
    	content, err := ioutil.ReadAll(file)
    	if err != nil {
    		errInfo := fmt.Sprintf("fild read error: \n%s\n", err.Error())
    		fmt.Printf(errInfo)
    		return
    	}
    	outInfo := fmt.Sprintf("fild content: \n%s\n", content)
    	fmt.Printf(outInfo)
    }
    
    /**
     * 判断所给路径文件 /文件夹是否存在
     */
    func pathExists(path string) (bool, error) {
    	_, err := os.Stat(path)
    	if err == nil {
    		return true, nil
    	}
    
    	if os.IsNotExist(err) {
    		return false, nil
    	}
    	return false, err
    }
    
    /**
     * 判断所给路径是否为文件夹
     */
    func isDir(path string) bool {
    	s, err := os.Stat(path)
    	if err != nil {
    		return false
    	}
    	return s.IsDir()
    }
    
    /**
     * 判断所给路径是否为文件
     */
    func isFile(path string) bool {
    	return !isDir(path)
    }
    
    func main() {
    	succeed, input := readPrint()
    	if succeed {
    		fileRead(input)
    	}
    
    	if runtime.GOOS == "windows" {
    		//pause
    		fmt.Println("system(pause)")
    		quit := make(chan os.Signal)
    		signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
    		sig := <-quit
    		for {
    			if sig.String() == "interrupt" {
    				break
    			}
    		}
    	}
    }
    
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.