import 'dart:io'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; /// 암호 보관함 [보기] 에서 잠깐 푼 파일을 두는 곳 (관리자 지시 10/21): 공유 폴더 (Download · 시스템 TEMP) 가 아니라 /// 앱 전용 - Android getCacheDir (다른 앱이 못 봄), Windows 앱 데이터 폴더의 temp. 시험에서 바꾼다 Future Function() vaultViewRootOf = () async { if (Platform.isAndroid) return getTemporaryDirectory(); return Directory(p.join((await getApplicationSupportDirectory()).path, 'temp')); }; /// 푼 파일을 두는 폴더 이름 앞 (실행마다 새 폴더) const vaultViewPrefix = 'jj_vault_view_'; /// 앱이 강제로 꺼져 남은 보기 폴더를 지운다 (앱을 켤 때 - 그때는 보관함이 열려 있지 않음). 지운 이름 List removeStaleVaultViews(String root) { final removed = []; try { for (final e in Directory(root).listSync(followLinks: false)) { final name = p.basename(e.path); if (e is! Directory || !name.startsWith(vaultViewPrefix)) continue; try { e.deleteSync(recursive: true); removed.add(name); } catch (_) {} } } catch (_) {} return removed; }