标签: fs

Node.js中的fs不明白〜/

我正在尝试检查目录是否作为node.js中命令行应用程序的一部分存在.但是,fs似乎并不理解~/.例如,以下内容返回false ...

> fs.existsSync('~/Documents')
false
Run Code Online (Sandbox Code Playgroud)

......但这会返回真实的......

> fs.existsSync('/Users/gtmtg/Documents')
true
Run Code Online (Sandbox Code Playgroud)

......即使他们都是一回事.

为什么会发生这种情况,是否有解决方法?提前致谢!

javascript fs node.js

5
推荐指数
1
解决办法
945
查看次数

我如何在Node JS中使用fs.read()

我尝试在Mac OS中使用Nodejs fs.read方法。但是它不起作用..我在下面的源代码中使用

    var fs = require('fs');
    fs.open('helloworld.txt', 'r', function(err, fd) {
        fs.fstat(fd, function(err, stats) {

            var bufferSize=stats.size  ,
                chunkSize=512,
                buffer=new Buffer(bufferSize),
                bytesRead = 0;

            while (bytesRead < bufferSize) {
                if ((bytesRead + chunkSize) > bufferSize) {
                    chunkSize = (bufferSize - bytesRead);
                }

                fs.read(fd, buffer, bytesRead, chunkSize, bytesRead, testCallback);
                bytesRead += chunkSize;
            }
            console.log(buffer.toString('utf8'));
        });
        fs.close(fd);
    });

    var testCallback = function(err, bytesRead, buffer){
        console.log('err : ' +  err);
    };
Run Code Online (Sandbox Code Playgroud)

实际上,我在stackoverflow中使用了一些示例。

当我执行源代码时,

err : Error: EBADF, read
Run Code Online (Sandbox Code Playgroud)

此错误返回。

但是,如果我使用readFile方法,则效果很好。

    fs.readFile('helloworld.txt', function …
Run Code Online (Sandbox Code Playgroud)

filestream fs node.js

5
推荐指数
1
解决办法
2031
查看次数

如何在node.js中获取目录大小而无需递归遍历目录?

如何在不递归地遍历目录中所有子级的情况下获取node.js中目录的大小?

例如

var fs = require('fs');
fs.statSync('path/to/dir');
Run Code Online (Sandbox Code Playgroud)

会把这样的东西还给我,

{ dev: 16777220,
  mode: 16877,
  nlink: 6,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 62403939,
  size: 204,
  blocks: 0,
  atime: Mon May 25 2015 20:54:53 GMT-0400 (EDT),
  mtime: Mon May 25 2015 20:09:41 GMT-0400 (EDT),
  ctime: Mon May 25 2015 20:09:41 GMT-0400 (EDT) }
Run Code Online (Sandbox Code Playgroud)

但是size属性不是目录的大小,而是目录的大小(即目录中文件的总和)。

如果不递归地找到子目录的大小(然后将其总和),是否没有办法获取目录的大小(包含目录中文件的大小)?

我基本上是想做等效的操作,du -ksh my-directory但是如果给定目录的确很大(例如/),则需要递归地获取真正的目录大小。

fs node.js

5
推荐指数
4
解决办法
4928
查看次数

在node.js中获取模块的名称

有谁知道如何在node.js/javascript中获取模块的名称

所以我们说你这样做

var RandomModule = require ("fs")
.
.
.
console.log (RandomModule.name)
// -> "fs"
Run Code Online (Sandbox Code Playgroud)

javascript module fs node.js npm

5
推荐指数
1
解决办法
7102
查看次数

使用Node JS访问本地网络驱动器

关于fs / io操作,NodeJs很棒,但是我不能用来访问共享的(用于存储)本地网络驱动器。

filesystem.writeFile('\\192.168.1.1\test.txt', 'data!', function(error){ ... });
Run Code Online (Sandbox Code Playgroud)

我收到UNKNOWN_ERROR,这无济于事!通过浏览器(我在Windows上)可以毫无问题地访问那里的IP,并且可以写(对于我的windnows用户)。

这里有什么问题 ?!

javascript fs node.js electron

5
推荐指数
1
解决办法
7445
查看次数

即使路径正确,也无法在Node中找到文件

执行此代码后:

const filename = "../../.dburl"
const url = fs.readFileSync(filename, 'utf-8')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: ENOENT: no such file or directory, open '../../.dburl'
Run Code Online (Sandbox Code Playgroud)

我到目前为止所知道的:

1)文件路径正确。

2)我的应用程序有权读取文件。

3)即使存储在与应用程序相同的目录中,也不会读取.dburl。

非常感谢任何帮助...谢谢!

fs node.js

5
推荐指数
2
解决办法
7237
查看次数

如何在角度2中使用文件系统(fs)

在我的angular 2应用程序中,需要使用文件系统将大文件上传到Amazon S3服务器.但是,我在应用程序中导入文件系统时遇到问题.请帮助我的应用程序中实现文件系统.

我的component.ts文件

import { Component,ViewChild } from '@angular/core';
import * as fs from 'fs';
/* External Services */
import { ApiWebConfig } from '../../../core/config/app.config';

declare var $:any;
@Component({
  selector: 'content-uploadpart',
  templateUrl: './app/modules/uploadpartcontent.html'
})
export class ContentUploadPartComponent {
  constructor( private config:ApiWebConfig ) { }  
  uploadToAWS(file:any) {
    var buffer = fs.readFile() 
    console.log('buffer',buffer);
  }
  ngOnInit() { }
}
Run Code Online (Sandbox Code Playgroud)

还有我的uploadpartcontent.html

<div class="container">
    <div class="row">
        <div class="col-md-12 upload_part_wrap">
            <input #fileUpload (change)="uploadToAWS($event)" type="file" value="Browse" />
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的Package.json文件

{
  "name": "my-project",
  "version": "1.0.0", …
Run Code Online (Sandbox Code Playgroud)

filesystems fs aws-sdk fs-extra angular

5
推荐指数
0
解决办法
8522
查看次数

如何从ES6中的解析器中获取xml2js结果?

我正在Node中构建一个服务器,它将搜索文件夹以查看是否存在XML文件(glob),如果存在,则将(fs)中的文件作为JSON对象(xml2js)读取并最终将其存储在数据库中某处.我想要将解析器的结果输出到另一个变量中,以便我可以对数据执行其他操作.从我所知道的情况来看,有些东西是同步运行的,但是我无法弄清楚如何阻止它并让我等到它完成继续前进.

我将我的功能分离到app.js的其他控制器:

app.controller.js

const fs = require('fs-extra');
const glob = require('glob');
const xml2js = require('xml2js');

exports.requests = {};

exports.checkFileDrop = async () => {
  console.log('Checking for xml in filedrop...');
  // this is the only place await works...
  await glob('./filedrop/ALLREQUESTS-*.xml', (err, files) => {
    var parser = new xml2js.Parser();
    // this is looking for a specific file now, which I'll address later once I can figure out this issue
    fs.readFile('./filedrop/ALLREQUESTS-20170707.xml', 'utf16le', function (err, data) { 
      if (err) {
        console.log('ERROR: ', err); …
Run Code Online (Sandbox Code Playgroud)

javascript fs node.js ecmascript-6 xml2js

5
推荐指数
1
解决办法
3915
查看次数

在Node JS中将文件循环访问到数组时存储fs.stat

我正在遍历目录中的文件并将文件详细信息存储到数组中data。如果我不尝试运行fs.stat以获取诸如文件创建/编辑日期之类的内容,则以下代码将填充数组:

fs.readdir('../src/templates', function (err, files) {
     if (err) {
        throw err;
      }
      var data = [];
      files
      .forEach(function (file) {
        try {
          fs.stat('../src/templates/'+file,(error,stats) => {
            data.push({ Name : file,Path : path.join(query, file)  });
          });
        } catch(e) {
          console.log(e);
        }

      });

      res.json(data);
  });
});
Run Code Online (Sandbox Code Playgroud)

如果我将数组移到data.push(...)外面,fs.stat则返回文件数据。在fs.stat它里面返回空。我认为这是一个异步问题,因为for循环正在运行并在fs.stat运行前完成。

我想我需要在这里使用诺言,但不能确定。

javascript fs node.js

5
推荐指数
1
解决办法
328
查看次数

fs.readdir失败,不知道为什么

运行节点应用程序以读取目录

fs.readdirSync('?/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward');
Run Code Online (Sandbox Code Playgroud)

我一直得到

 Stack:
    error properties: Object({ errno: -2, syscall: 'scandir', code: 'ENOENT', path: '?/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward' })
    Error: ENOENT: no such file or directory, scandir '?/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward'
Run Code Online (Sandbox Code Playgroud)

但是我知道目录在那里

ls -al /Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward
    total 0
    drwxr-xr-x@ 9 edwardthompson  staff  288 Jan 18  2019 .
    drwxr-xr-x@ 6 edwardthompson  staff  192 Aug 29 12:30 ..
    drwxr-xr-x@ 9 edwardthompson  staff  288 Jan 18  2019 Births
    drwxr-xr-x@ 4 edwardthompson  staff  128 Jan 18  2019 Census
    drwxr-xr-x@ 3 edwardthompson  staff   96 Jan 18  2019 Deaths
    drwxr-xr-x@ 7 edwardthompson  staff …
Run Code Online (Sandbox Code Playgroud)

javascript fs node.js

5
推荐指数
2
解决办法
273
查看次数