Tag: 文件系统

Node.js – 不能删除用createWriteStream创build并写入的文件

我找不到解决这个问题的办法。 使用Node fs我创build一个文件与createWriteStream,写入数据,然后尝试删除它,但不能删除,而节点打开时。 以下是我用于此过程的代码: var file = fs.createWriteStream("test.txt", {flags: "a"); file.write(new Buffer(1048576)); 该文件创build成功,并将1MB的空数据正确写入。 问题是当我尝试fs.unlink文件或手动删除它(Windows – 删除文件),它从文件夹中消失,但一旦我刷新文件夹该文件仍然存在,它总是在那里,直到节点closures。 我认为一旦它不再被Node使用,它就被标记为删除。 我已经试过用file.close() , file.end() , file.emit("close") , file.emit("end")和其他一些程序closures文件,但仍然无法删除文件。 我如何“完成”文件,以便在需要时可以删除它? 我以为写完后就自己关了。

Nodejs fs | 错误:ENOTDIR:不是目录

所以我正在使用第三方项目,并有以下代码块: // walk through /run and remove all filecontents, keeping 1 level directories. var root = '/run'; if (fs.existsSync(root)) { fs.readdirSync(root).forEach(cleanFileOrDir); } 其中cleanFileOrDir是: function cleanFileOrDir(f) { var fPath = path.join(root, f); if (fs.statSync(fPath).isFile()) { // if its a file delete it right away rimraf.sync(fPath); } else { // remove its contents rimrafKidsSync(fPath); } } 我收到以下错误: […]

需要工作,而不是存在同步

我遇到了以下代码的问题: if (fs.existsSync('./my-options.json')) { var json = require('./my-options.json'); extend(options, json); } fs.existsSync找不到文件,但是, require 。 我究竟做错了什么? 谢谢。

在电子应用程序中search文件系统

是否有可能使用电子应用程序search/索引文件系统/硬盘(Windows或Mac或Linx)。 有没有可以做到这一点的节点包/function?

如何知道一个文件中的行数,而无需将其内容加载到JavaScript中的内存?

简要: 一个将加载CSV文件的系统,但预计会很大 (+ 1M行)。 我已经知道如何使用队列和后台作业/任务来处理它们。 但, 我想向用户显示他的文件中的进度,如下所示: 1246875的2165或者百分比。 要存档这个,我需要知道文件中的行数,但是我不得不将它的内容加载到内存中,所以它可以很快,只要我上传,可以保存文件中的文件在其中find了全部的行。 在PHP中,这可能使用SplFileObject试图seek()到PHP_MAX_INT ,然后它到达它可以在文件中的最高行, key()返回该行。 但是这个系统是完全用JavaScript / Node.js构build的,所以为了方便,我想用JavaScript来构build这个系统部分。 我怎么能做到这一点? 已经看过FS API了 ,但没有find如何去做到这一点。 [编辑] 迄今为止的想法: child_process.exec + wc -l (仅适用于Unix) 使用FileReader从客户端获取此信息(将资源委托给用户)

NodeJs与./folderpath与../folderpath之间的区别

我是nodejs中的新手。 我尝试在我的文件系统中使用一些文件。 我想通过一些实际的path让他们。 这里是结构: -app -resources -tmp -file1 -file2 -common -common.js -etc 所以,我想从int common文件夹中的common.js文件的resources / tmp文件夹中到达file1和file2。 我用了两条相对path: // First , wrong one var tmpfolder = '../resources/tmp'; // Second, good one var tmpfolder = './resources/tmp'; 文件的绝对path是这样的: C:\用户\ XY \文件\工作\的NodeJS \项目\ project_wrapper_folder \ project_folder \资源\ tmp目录 如果我login第一个相对path,我得到了这个结果: C:\用户\ XY \文件\工作\的NodeJS \项目\ project_folder \资源\ tmp目录 这是错误的,因为它不包含包装文件夹。 但是第二个很好。 有人可以解释我的这种行为吗? […]

在MongoDB集合中find一个string

我想在MongoDB中实现一个小的文件系统,比如集合。 所以说我的对象是这样的 { "\":{ 'autoexec.bat':{ name:'autoexec', filetype:'bat', size:1302 }, 'users':{ /* its own tree */ }, 'windows':{ 'system':{ 'autoexec.bat':{ name:'autoexec', filetype:'bat', size:1302123 } } } } 我想知道如何以最有效的方式find术语“autoexec.bat”。进一步的文件树是否有更好的方法来实现在Node.js或C + +? 我希望实现search等function

Node.js中的TCP套接字和文件操作

我是Node.js的新手,我有两个问题: 你可以在服务器端创build常规的TCP套接字吗? 是否可以读取/写入服务器端的文件? 就这样。 这两个对于将我的程序放到networking上都是至关重要的。

截断将STDOUTredirect到的文件

我有一个节点应用程序,它的STDOUT被redirect到一个日志文件: node app.js > /var/log/app.out 从我的节点程序中,我想重置日志,以防止它变得太大。 我已经尝试了fs.truncate和fs.open('/var/log/app.out', 'w')来重置它的长度,但是当我尝试使用ls或stat来validation文件大小时,文件大小似乎很快重置为0,然后重置为它以前的大小加上新的消息(我目前正在逼迫大量的输出)。 root@ubuntu-1304-mike:/var/log# stat app.out File: 'app.out' Size: 5885622 Blocks: 16 IO Block: 4096 regular file Device: fc00h/64512d Inode: 270560 Links: 1 Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-09-26 17:20:06.784564421 -0600 Modify: 2013-09-26 17:20:49.088565625 -0600 Change: 2013-09-26 17:20:49.088565625 -0600 Birth: – root@ubuntu-1304-mike:/var/log# stat app.out […]

Node.js – 静态文件服务器不工作

我正在试图在note.js中创build一个静态文件服务器,但它并没有真正的工作。 我的fileserver.js代码: var http = require("http"), sys = require("sys"), path = require("path"), url = require("url"), filesys = require("fs"), rootpath = "D:\\NodeJS\\WWW\\", port = 3000; http.createServer(function(request,response){ var my_path = url.parse(request.url).pathname; var full_path = path.join(process.cwd(),rootpath+my_path); path.exists(full_path,function(exists){ if(!exists){ response.writeHeader(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); } else{ filesys.readFile(full_path, "binary", function(err, file) { if(err) { response.writeHeader(500, {"Content-Type": "text/plain"}); response.write(err […]