programing

전자를 사용하여 폴더 경로를 얻는 방법

fastcode 2023. 3. 21. 22:39
반응형

전자를 사용하여 폴더 경로를 얻는 방법

나는 전자에 매우 익숙하지 않다.전자로 로컬 폴더의 상대 경로를 얻는 방법을 제안할 수 있는 사람 있나요?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

반응형