如何在创建目录时将文件写入目录?

时间:2018-03-18 01:23:19

标签: node.js

我尝试在创建目录后立即在目录中创建文件。我不知道我哪里出错了。我想这可能是因为代码执行得足够快,以至于没有意识到创建了一个目录?但是我应该得到错误,这是我到目前为止所做的:

    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. 
                    })
                }
            }

我在代码中添加了注释,试图解释我想要做的事情。我不确定我做错了什么。

1 个答案:

答案 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);

我认为这会导致你的问题。