6

我正在尝试在 Mac 上使用 NodeJS 读取文本文件。该文件位于同一网络上的 Windows 计算机上。

var fs = require('fs');
var file = "smb://someserver/stuff/names.txt";

fs.readFile(file, 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});

当我运行此代码时,我得到:

> Error: ENOENT, open 'smb://someserver/stuff/names.txt'

我可能需要验证对文件的访问权限,但我还没有找到任何处理这种情况的文档或模块。是否可以像这样读/写文件?

更新 (10/22)

我尝试过使用 UNC 路径(即\\someserver\stuff\names.txt),但我相信这只是解决方案的一部分。不知何故,我需要提供用户名/密码/域,因为此文件需要特殊权限。是否可以以某种方式提供权限?例如:

var fs = require('fs');
var file = '\\someserver\stuff\names.txt';
var credentials = { username:'mydomain/jsmith', password:'password' }; ???

fs.readFile(file, 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});
4

2 回答 2

2

You should use UNC paths if you are trying to access resources from other network drives.

var fs = require('fs');
var file = "\\someserver\stuff\names.txt";

fs.readFile(file, 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});
于 2013-10-03T20:00:50.530 回答
2

您可以先使用“node-cmd”更新凭据,然后尝试使用 unc 路径读取/写入文件夹。

var cmd = require("node-cmd");
const data = cmd.runSync(
  "net use \\IP /user:username password"
);

// Now you do read / write using the fs
fs.readdir("\\IP")

于 2021-09-07T09:21:48.583 回答