我尝试在创建目录后立即在目录中创建文件。我不知道我哪里出错了。我想这可能是因为代码执行得足够快,以至于没有意识到创建了一个目录?但是我应该得到错误,这是我到目前为止所做的:
var userFolder = "/api/forums/users/"+user.name
try{
fs.accessSync(userFolder)
}catch(e){
if(!fs.existsSync(userFolder)){
var userdirectory = "/Server/yeee/server/api/forums/users/"+user.name
fs.mkdirSync(userdirectory) <----- this makes directory with user.name
fs.access(userdirectory,function(){ <---- Me trying to access the directory that was just created
fs.writeFileSync(userdirectory+"test","file") <---- assuming it succeeds, create file in that directory.
})
}
}
我在代码中添加了注释,试图解释我想要做的事情。我不确定我做错了什么。
答案 0 :(得分:1)
始终使用path.join()
或path.resolve()
而不是与'/'或'\'连接,否则您将遇到跨平台问题(linux vs windows)
例如。
const path = require('path');
const userFolder = path.join('api', 'forums', 'users', user.name);
您必须提供目录的完整路径。您可以使用__dirname
节点全局变量来获取当前工作目录,例如:
path.join(__dirname, users);
我认为这会导致你的问题。