Articles of 文件系统

如何检查文件在node.js中是否可执行?

如何检查文件在node.js中是否可执行? 也许类似 fs.isExecutable(function (isExecutable) { })

什么是最有效的方法来读取节点JS中的文件的第一行?

假设你有很多长文本文件,你只需要从每个文件的第一行提取数据(不需要读取更多的内容)。 什么是节点JS的最好的方法来做到这一点? 谢谢!

Node.JS fs.readFileSync()错误的参数

我在我的节点中得到以下错误,不知道为什么: TypeError: Bad arguments at Object.fs.readFileSync (fs.js:277:11) at getSeries (/Users/user/tv/final.js:57:16) at /Users/user/tv/final.js:89:4 at /Users/user/tv/node_modules/async/lib/async.js:610:21 at /Users/user/tv/node_modules/async/lib/async.js:249:17 at iterate (/Users/user/tv/node_modules/async/lib/async.js:149:13) at /Users/user/tv/node_modules/async/lib/async.js:160:25 at /Users/user/tv/node_modules/async/lib/async.js:251:21 at /Users/user/tv/node_modules/async/lib/async.js:615:34 at /Users/user/tv/final.js:86:4 我很确定它与我使用的async npm软件包没有任何关系,因为我在开始使用它之前得到了同样的错误。 这里是代码: function getSeries() { JSON.parse(fs.readFileSync('updates.json', function(err,data) { if (err) { console.error(err); } else { var json = data; } }));

使用node.js覆盖文件中的一行

使用node.js覆盖大型文本文件(2MB +)的最佳方法是什么? 我目前的方法涉及 将整个文件复制到缓冲区中。 通过换行符( \n )将缓冲区分割成一个数组。 使用缓冲区索引覆盖该行。 然后在与\n连接后用缓冲区覆盖文件。

如何读取emscripten编译库中的用户指定文件?

我目前正在使用emscripten编译支持C中的文件parsing库。 它从读取二进制文件的用户处获取文件path并对其进行parsing。 我知道emscripten不支持直接加载文件,而是使用虚拟文件系统。 有没有办法将文件加载到虚拟文件系统的给定path,以便emscripten编译的C库可以读取它? 我在寻找NodeJS和浏览器的解决scheme。

nodejs同步逐行读取大文件?

我有一个大文件(utf8)。 我知道fs.createReadStream可以创buildstream来读取大文件,但不能同步。 所以我尝试使用fs.readSync ,但阅读文本被打破,如"迈 " 。 var fs = require('fs'); var util = require('util'); var textPath = __dirname + '/people-daily.txt'; var fd = fs.openSync(textPath, "r"); var text = fs.readSync(fd, 4, 0, "utf8"); console.log(util.inspect(text, true, null));

监视目录中的更改 – 潜在的高内存

我目前在nodeJS中使用一个脚本来监视一个目录(和它的子目录),并且一旦文件被放置在那里,就执行一些function。 实际上,这将是一个FTP,在这里用户上传文件,进行处理,然后删除。 显然,我已经看到脚本的CPU使用量很高,因为它遍历目录,等待文件可见。 但令我担心的是脚本运行的时间越长,内存使用率越高(它只是呈指数级增长)。 有一些轻量级的方法来监视一个目录的变化? 谢谢! 编辑:我目前正在使用手表树 ,这是伟大的,但仍有增加内存的问题。

NodeJS:如何在服务器端观看大量的文件/文件夹进行更新?

我正在开发一个小型的NodeJS应用程序,它基本上用作基于浏览器的桌面search,以便用户可以查询的基于局域网的服务器。 在局域网上的用户都可以访问该服务器上的共享文件夹,传统上习惯于将文件夹放在该文件夹中以便在每个人之间共享,并且我希望保持该过程相同。 我碰到的第一个解决scheme是fs.watchFile ,在其他的stackoverflow问题上已经被触及。 在第一个问题中,用户Ivo Wetzel指出,在linux系统上,fs.watchFile使用inotify,但是认为fs.watchFile不应该用于大量的文件/文件夹。 在关于fs.watchFile的另一个问题中 ,用户tjameson首先重申,在Linux上,inotify将被fs.fileWatch使用,并推荐使用node-inotify-plusplus和node-walk的组合,但是再次声明这种方法不应该用于大量的文件。 有了评论和回应,他build议只查看目录的修改时间,然后重新扫描相关目录以更改文件。 我的最大障碍似乎是,即使有tjameson的build议,受监控文件夹的数量仍然有很大的限制(其中有很多不断增长的文件夹)。 此外,它将不得不做recursion,因为目录树是有点深,也可能会受到更改在较低的分支机构,所以我将不得不在每个文件夹级别监视以下(或者监视修改时间的文件夹,然后扫描以查明发生了什么): 创build文件或子文件夹 删除文件或子文件夹 移动文件或子文件夹 删除自我 自我移动 假设inotify的限制与上面所说的一致,那么当我拥有大量的嵌套子文件夹时,这对我来说似乎可能是太多监视器。 真正的真棒方式看起来像它会涉及kqueue ,我后来发现,作为一个更好的fs.fileWatch在谷歌组讨论的话题。 在我看来很清楚,保持相关文件和文件夹信息的数据库是在事物的查询方面的适当的操作过程,但是保持该数据库与在所关注的目录下的文件系统的实际状态同步将是挑战。 那么社区是怎么想的呢? 有没有一个更好的或众所周知的解决scheme来攻击这个问题,我只是不知道? 最好只是观察所有感兴趣的目录,例如修改时间,然后扫描以查明发生了什么? 观察所有相关的inotify警报并适当地修改数据库是否更好? 这不是像我这样的农民可以解决的问题吗?

在networking驱动器上的appendFile EPERM

应用程序必须将日志数据存储到networking驱动器。 当驱动器在Windows下托pipe时,一切正常。 当驱动器在Mac下托pipe时,读/写是正常的,但附加得到EPERM,所以日志根本不起作用。 代码是相当微不足道的 fs.appendFileSync('xxx.txt', 'zzzzzzzz'); 如何正确追加数据? 该文件通常太大,无法加载到内存中。 更新:读写删除创build是好的! 只有打开与追加失败

Node.js – 文件系统获取文件types

我需要借助node.js来获取文件的文件types来设置内容types。 我知道我可以很容易地检查文件扩展名,但我也有没有扩展名的文件应该有内容types的image/png , text/html ASO。 这是我的代码(我知道它没有多大意义,但这是我需要的基础): var http = require("http"), fs = require("fs"); http.createServer(function(req, res) { var data = ""; try { /* * Do not use this code! * It's not async and it has a security issue. * The code style is also bad. */ data = fs.readFileSync("/home/path/to/folder" + req.url); var type = […]