如何使用NodeJS检索MyDocuments路径。
所以我想在NodeJs中使用以下C#代码获取一些东西:
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Thx&问候 斯蒂芬
答案 0 :(得分:2)
找到答案:
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);
});
答案 1 :(得分:-1)
您应该使用环境变量:
function getUserDoc() {
return process.env.USERPROFILE+'\\Documents';
}
这假定您运行Win7或更高版本。对于Win XP,它是\\My Documents
。您可以轻松检查功能中的一个。
此外,您可以使用提供快捷方式homedir()的程序包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
尽管如此,我已经保存了该片段以供使用; - )