我开始胡闹角度2和电子,并使用
this starter package
。一切似乎都很顺利,我甚至可以使用node fs包从目录中读取。
我遇到的问题是,我似乎无法为readdirSync()方法使用绝对路径。它只采用相对路径。
docs for fs
您可以使用URL包显示readdirSync()的绝对路径,如下所示:
const fs = require('fs');
const { URL } = require('url');
// file:///C:/tmp/hello => C:\tmp\hello
fs.readFileSync(new URL('file:///C:/tmp/hello'));
这看起来很棒,但在我的角度2/TypeScript/Electron世界中,这似乎不起作用。我的看起来像这样:
import { Injectable } from "@angular/core";
import {readdirSync} from "fs";
import { URL } from "url";
@Injectable()
export class LinkDocRetrieverService {
getFiles():Array<String> {
// read through all the directories to get all the files and folder names
let u = new URL("file:///C:/SAFE/MISC");
let x = readdirSync(u);
console.log("files retrieved="+ x.length);
let files: Array<string> = [];
x.forEach(f => {
files.push(f);
});
return files;
}
}
“URL”类型的[ts]参数不能分配给类型的参数
类型“URL”中缺少属性“write”。
我读过很多帖子,说他们不能在Angular 2+Typescript中运行fs包,但只要我使用相对路径,它对我来说就很好。我只是需要帮助找到工作的绝对途径。提前谢谢。