전자를 사용하여 폴더 경로를 얻는 방법
나는 전자에 매우 익숙하지 않다.전자로 로컬 폴더의 상대 경로를 얻는 방법을 제안할 수 있는 사람 있나요?JavaScript에는 이러한 기능이 없습니다.
파일 선택 버튼(스냅샷 참조)이 있기 때문에 폴더를 선택하고 열기 버튼을 클릭하면 전체 디렉토리 경로가 반환됩니다.
@phuongle이 사용하고 싶은 코멘트에서 지적한 바와 같이showOpenDialog(). 다음과 같은 경우:
var remote = require('remote');
var dialog = remote.require('electron').dialog;
var path = dialog.showOpenDialog({
properties: ['openDirectory']
});
업데이트: 현재 사용 중인 Electron 버전에서 위의 내용이 작동하지 않는 경우 보다 현대적인 Import를 시도해 보십시오.
const {dialog} = require('electron').remote;
또, 사용하기 위해서remote, 를 설정할 필요가 있습니다.enableRemoteModule기본 프로세스에서 창을 만들 때:
const myWindow = new BrowserWindow({
webPreferences: {
enableRemoteModule: true
}
});
공식 IPC 튜토리얼에 따라 작업했습니다.
주요 프로세스:
import {dialog, ipcMain} from 'electron'
function createWindow () {
mainWindow = new BrowserWindow({/*Your electron window boilerplate*/})
ipcMain.handle('dialog:openDirectory', async () => {
const { canceled, filePaths } = await dialog.showOpenDialog(mainWindow, {
properties: ['openDirectory']
})
if (canceled) {
return
} else {
return filePaths[0]
}
})
}
프리로드 스크립트:
import {contextBridge, ipcRenderer} from 'electron'
contextBridge.exposeInMainWorld('myAPI', {
selectFolder: () => ipcRenderer.invoke('dialog:openDirectory')
})
이제 응용 프로그램 코드에서 selectFolder 메서드를 호출하여 사용자 입력을 받을 수 있습니다.
window.myAPI.selectFolder().then(result=>{/* Do something with the folder path*/})
Electron에서는 type="file"과 webkitdirectory 속성으로 단순 입력 요소를 지정하여 디렉토리를 선택할 수 있습니다. <input id="myFile" type="file" webkitdirectory />File 객체의 경로 속성을 사용하여 디렉토리의 전체 경로를 가져올 수 있습니다.document.getElementById("myFile").files[0].path
노드(Node)를 사용합니다.
이 솔루션은 단순히 모두 소문자로만 사용하고 값은true내 반응 컴포넌트에 문자열로 표시됩니다.추가 설정은 필요 없습니다.
다음과 같은 경우:
<input
id="path-picker"
type="file"
webkitdirectory="true"
/>
편집
@cbartondock에서 언급했듯이 디렉토리 내의 파일을 재귀적으로 검색하기 때문에 좋지 않습니다.
나는 필요한 전자 리모컨의 대화 상자를 사용하게 되었다.
언급URL : https://stackoverflow.com/questions/36152857/how-to-get-folder-path-using-electron
'programing' 카테고리의 다른 글
| 현재 활성 데이터Spring Boot에서 소스 참조 가져오기 (0) | 2023.03.21 |
|---|---|
| Ajax에서 Asynchronous는 무엇을 의미합니까? (0) | 2023.03.21 |
| Wordpress Post에서 HTML 코드를 코멘트 아웃할 수 있습니까? (0) | 2023.03.21 |
| $wpdb->insert가 작동하지 않습니다.last_query에 삽입 "SHOW FULL COLUMNS FROM"이 표시되지 않습니다. (0) | 2023.03.21 |
| 기능 컴포넌트에서 displayName을 설정하는 방법 [React] (0) | 2023.03.21 |
