File Opener는 웹 브라우저나 문서에서 클릭 한 번으로 로컬 파일을 여는 도구입니다.
fileopener:// 프로토콜을 사용하여 프로젝트의 파일들을 빠르게 열 수 있습니다.
# npm으로 전역 설치
npm install -g @context-action/fopen-cli
# 프로토콜 등록 (한 번만 실행)
fopen install# 현재 디렉토리를 프로젝트로 추가
fopen add my-project
# 또는 특정 경로 지정
fopen add my-project "C:\Users\username\projects\my-project"이제 다음과 같은 URL로 파일을 열 수 있습니다:
fileopener://my-project/README.md
fileopener://my-project/src/index.js
fileopener://my-project/docs/guide.md
fileopener://프로젝트명/파일경로
fileopener://my-project/package.json
fileopener://my-project/src/components/Header.tsx
fileopener://my-project/docs/api/reference.md
공백은 %20으로 인코딩합니다:
fileopener://my-project/my%20file.txt
fileopener://my-project/documents/meeting%20notes.md
쿼리 파라미터 방식도 지원합니다:
fileopener://my-project?path=README.md
fileopener://my-project?path=src/index.js
프로젝트의 [설정 파일](fileopener://my-project/config.json)을 확인하세요.
자세한 내용은 [API 문서](fileopener://my-project/docs/api.md)를 참조하세요.<a href="fileopener://my-project/README.md">README 열기</a>
<a href="fileopener://my-project/src/app.js">소스 코드 보기</a>fileopener://my-project/package.json
엔터를 누르면 해당 파일이 기본 에디터에서 열립니다.
# 프로젝트 추가
fopen add project-name "C:\path\to\project"
# 프로젝트 목록 보기
fopen list
# 프로젝트 삭제
fopen remove project-name
# 설정 파일 열기
fopen config# 로그 파일 정리 (디스크 공간 확보)
fopen clean-logs# 프로토콜 재등록
fopen install
# 프로토콜 제거
fopen uninstallFile Opener는 다음과 같은 보안 기능을 제공합니다:
- 등록된 프로젝트 디렉토리 내부의 파일만 접근 가능
- 상위 디렉토리 접근 시도 차단 (
../등) - 절대 경로 접근 차단 (
C:\,/etc/등) - 시스템 파일 보호
# 이런 시도들은 모두 차단됩니다
fileopener://my-project/../../../Windows/System32/calc.exe
fileopener://my-project?path=C:\Windows\System32\notepad.exe
fileopener://my-project/~/Documents/private.txt모든 보안 위반은 로그에 기록되어 추적 가능합니다.
심볼릭 링크는 다른 파일이나 폴더를 가리키는 "바로가기"입니다. 프로젝트 내에서 자주 사용하는 파일에 짧은 이름으로 접근할 수 있습니다.
# 1. Windows 키 + X 누르기
# 2. "터미널(관리자)" 또는 "명령 프롬프트(관리자)" 선택
# 3. 프로젝트 디렉토리로 이동
cd C:\path\to\your\project
# 4. 심볼릭 링크 생성
mklink shortcut.md docs/long/path/document.md개발자 모드를 활성화하면 관리자 권한 없이 심볼릭 링크를 생성할 수 있습니다:
1. 설정 앱 열기 (Windows 키 + I)
2. "개발자용" 검색
3. "개발자 모드" 토글 켜기
4. 재부팅
재부팅 후:
# PowerShell에서 일반 권한으로 실행
cd C:\path\to\your\project
New-Item -ItemType SymbolicLink -Path "shortcut.md" -Target "docs\long\path\document.md"# 심볼릭 링크 생성 후
mklink api-doc.md docs/api/reference/detailed-api.md
# 짧은 URL로 접근 가능
fileopener://my-project/api-doc.md✅ 안전: 프로젝트 내부 파일을 가리키는 링크
mklink quick-readme.md README.md
mklink main-config.json config/production/main.config.json# 이렇게 하지 마세요!
mklink outside.txt C:\other-project\file.txt- 명령어:
cmd /c start "" - 기본 연결 프로그램으로 파일이 열립니다
- 텍스트 파일 → VS Code, Notepad 등
- 이미지 파일 → 사진 앱
- PDF 파일 → PDF 뷰어
- 명령어:
open - 기본 연결 프로그램으로 파일이 열립니다
- 명령어:
xdg-open - 기본 연결 프로그램으로 파일이 열립니다
fopen list프로젝트가 목록에 없다면:
fopen add my-project "C:\path\to\project"# 파일이 실제로 존재하는지 확인 (Windows)
dir C:\path\to\project\your-file.txt
# 또는 PowerShell
Test-Path "C:\path\to\project\your-file.txt"✅ 올바른 형식: fileopener://my-project/README.md
❌ 잘못된 형식: fopen://my-project/README.md
✅ 올바른 형식: fileopener://my-project/my%20file.txt
❌ 잘못된 형식: fileopener://my-project/my file.txt
# 프로토콜 재등록
fopen uninstall
fopen install
# Windows에서 재부팅 필요할 수 있음- 프로젝트 디렉토리 읽기 권한 확인
- 안티바이러스 소프트웨어 예외 추가 검토
- Windows Defender 실시간 보호 일시 비활성화 후 테스트
문제 해결을 위해 로그를 확인할 수 있습니다:
notepad %USERPROFILE%\.fopen-cli\handler.logcat ~/.fopen-cli/handler.log로그에는 다음 정보가 포함됩니다:
- 파일 열기 시도
- 보안 위반 감지
- 오류 메시지
- 성공/실패 결과
프로젝트 README.md에 소스 코드 링크를 포함:
## 프로젝트 구조
- [메인 앱](fileopener://my-project/src/app.js)
- [설정 파일](fileopener://my-project/config.json)
- [테스트 코드](fileopener://my-project/tests/app.test.js)GitHub 이슈나 JIRA에서 파일 참조:
버그가 발생하는 파일: fileopener://my-project/src/components/Button.tsx
관련 테스트: fileopener://my-project/tests/Button.test.tsxPR 설명에 변경된 파일 링크 포함:
### 주요 변경 사항
- [API 핸들러 수정](fileopener://my-project/src/api/handler.js)
- [타입 정의 업데이트](fileopener://my-project/types/api.d.ts)신규 팀원을 위한 가이드:
## 시작하기
1. [환경 설정 가이드](fileopener://team-project/docs/setup.md)
2. [코딩 컨벤션](fileopener://team-project/docs/conventions.md)
3. [예제 코드](fileopener://team-project/examples/hello-world.js)웹 서버와 통합하여 HTTP URL을 자동으로 fileopener:// 프로토콜로 리다이렉트할 수 있습니다.
자세한 내용은 fileopener-redirect-worker 프로젝트를 참조하세요.
더 많은 정보는 다음을 참조하세요:
즐거운 코딩 되세요! 🎉