NodeJS로 MyDocuments 경로를 검색하는 방법은 무엇입니까? 찾을 수NodeJs : Windows에서 MyDocuments 경로 받기
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
들으 & 감사 스테판
NodeJS로 MyDocuments 경로를 검색하는 방법은 무엇입니까? 찾을 수NodeJs : Windows에서 MyDocuments 경로 받기
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
들으 & 감사 스테판
을 답 :
이var Q = require('Q');
var getUserDoc = function(callback) {
var Winreg = require('winreg');
var deferred = Q.defer();
var regKey = new Winreg({
hive: Winreg.HKCU,
key: '\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders'
});
var myDocFolder = regKey.values(function(err, items) {
for (var i in items) {
if (items[i].name === 'Personal') {
deferred.resolve(items[i].value);
}
}
});
deferred.promise.nodeify(callback);
return deferred.promise;
}
getUserDoc().then(function(result) {
console.log(result);
});
당신은을 사용해야을
그래서 나는 다음과 같은 C# 코드로 NodeJs에 뭔가를 좀하고 싶습니다 환경 변수 대신
function getUserDoc() {
return process.env.USERPROFILE+'\\Documents';
}
여기서는 Win7 이상을 실행한다고 가정합니다. Win XP의 경우 \\My Documents
이됩니다. 당신은 당신의 기능에서 하나 또는 다른 것을 쉽게 확인할 수 있습니다.
또한, 당신은 어떻게이 경우에는 바로 가기 홈 디렉토리()
을 제공하는 패키지 path-extra 당신이 한 것 사용할 수 있습니다
var path = require('path-extra');
function getUserDoc() {
return path.homedir()+'\\Documents';
}
이러한 솔루션은 모두 당신이주지 할 수 있도록 귀하의 응용 프로그램 레지스트리를 확인하기위한 자격 증명. 그리고 당신이 찾은 약속 + 레지스트리 해킹보다 빨리 실행하십시오.
업데이트 : path-extra
더 이상 homedir을 지원하지 않습니다. https://github.com/jprichardson/node-path-extra/commit/ce7a0b67ce07ca06ca2eeabf62621e1327b1d113 +1 독창성을 위해 가능한 스 니펫을 저장했습니다. ;-)
사용자가 Windows에서 MyDcouments 폴더의 경로를 변경 한 경우 Patah path.homedir() 및 process.env.USERPROFILE이 올바른 디렉토리를 가리 키지 않습니다 ... 따라서 두 변형 모두 불행히도 작동하지 않습니다 ... –
참고 Windows XP는 문서 폴더를 번역합니다. 프랑스에서는'\\ Mes Documents'가 될 것입니다. Vista 및 최신 작업 (별칭은 다른 표시 이름?) – thomasb
각 폴더를 독립적으로 이동할 수 있기 때문에 Downvoted. 사례 : 동료가 다운로드 폴더를'D : \ Downloads'로 옮겼습니다. 작동하지 않습니다. – thomasb
정보를 찾는 좋은 방법은 아닙니다. 레지스트리를 해킹하는 것보다 공식 API를 호출하는 것이 더 낫다. –
나는 그것도 좋아하지 않지만 또 다른 가능성이있다? –
node.js에서 수행 할 수있는 작업을 모릅니다. Win32는 이러한 위치를 얻기위한 API를 제공합니다. –