# -*- coding: utf-8 -*- """用**真实的**配置(download_dir 保持默认 "received")测解析。 之前那个测试手动把 download_dir 设成了绝对路径,条件不一样, 所以没复现出问题。这次完全按 EXE 的实际状态来。 """ from __future__ import annotations import os import sys import tempfile from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") sys.path.insert(0, str(ROOT / "windows")) EXE_DIR = ROOT / "dist_exe" / "ykxmz" def main() -> int: # 用真实的 data 目录结构:/data + /received data = EXE_DIR / "data" recv = EXE_DIR / "received" data.mkdir(parents=True, exist_ok=True) recv.mkdir(parents=True, exist_ok=True) (recv / "java_payload.bin").write_bytes(b"test-payload-123") os.chdir(EXE_DIR) from lanremote.actions import Actions from lanremote.config import Store from lanremote.features import Features from lanremote.server import RemoteServer class U: def ui_call(self, f, timeout=5.0): return f() def log(self, *a, **k): pass def notify(self, *a, **k): pass def screen_size(self): return (1920, 1080) store = Store(data) # ← 真实位置,download_dir 用默认值 print(f" store.dir = {store.dir}") print(f" download_dir = {store.get('download_dir')!r}") print(f" received_dir = {store.received_dir()}") print(f" 文件存在 = {(recv / 'java_payload.bin').is_file()}") print() actions = Actions(U(), store) server = RemoteServer(store, actions, ui=U()) server.features = Features(actions) target = recv / "java_payload.bin" print(f" _is_sensitive(收到的文件) = {server._is_sensitive(target)}") print(f" features.is_sensitive(同文件) = {server.features.is_sensitive(target)}") print(f" features.sensitive_dirs() = " f"{[str(p) for p in server.features.sensitive_dirs()]}") print() resolved = server._resolve_received("java_payload.bin") print(f" _resolve_received('java_payload.bin') = {resolved}") print() if resolved is None: print(" >>> 仍然解析失败") return 1 print(" >>> 解析正常了") return 0 if __name__ == "__main__": sys.exit(main())