在 Angular 2 + Electron 中使用绝对路径

Ben

我开始使用 Angular 2 和 Electron,并使用了这个 starter package一切似乎都很顺利,我什至可以使用 node fs 包从目录中读取数据。

我遇到的问题是我似乎无法为 readdirSync() 方法使用绝对路径。它只需要相对路径。

我确实在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'));

这看起来很棒,但在我的 Angular 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;
    }
}

智能感知和运行时都告诉我

[ts] 'URL' 类型的参数不能分配给 'string | 类型的参数 缓冲'。类型“URL”不可分配给类型“缓冲区”。类型“URL”中缺少属性“写入”。

我本来希望语法是相同的,但没有运气。

我已经阅读了很多帖子,说明他们无法在 Angular 2 + Typescript 中运行 fs 包,但只要我使用相对路径,它对我来说效果很好。我只需要帮助获得工作的绝对路径。提前致谢。

皇家冰棒

文档指出 URL 支持是在 v7.6.0 中引入的并且是实验性的。Electron 使用 v7.4.0,因此您还不能使用带有 fs 的 URL。

fs.readFileSync('C:/tmp/hello')

应该工作得很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Angular 2中获取当前页面的绝对路径?

Angular CLI项目中的绝对路径

使用 oswalk + fnmatch 打印出 Python 2 中文件的*准确* 绝对路径

IOError:[Errno 2]没有这样的文件或目录-在Linux上,使用绝对路径

Typescript / Electron / Webpack模块如何/为什么具有绝对路径?

如何使用 Angular 10 img 标签中的绝对路径在 nodejs 服务器中提供静态图像?

使用cx_freeze(Qt5 / PySide2 App)冻结后的绝对路径

'FileNotFoundError:[Errno 2]没有这样的文件或目录',但是不能使用精确或绝对路径

如何避免在Angular 2中使用相对路径较长的导入?

如何在angular2模板中使用Electron的webview html元素?

Angular 2和Electron离线数据

在绝对路径中使用通配符创建文件

在Rails 6中使用绝对路径

Rails:在 Rails 6 中使用绝对路径

如何在Symfony2控制器中获取文件的绝对路径?

Webpack2 无法解析:config.context 绝对路径

在 Angular2/4 中使用相对路径以编程方式路由到其他组件

使用Electron在Angular 2应用程序中访问文件系统

使用 Pathlib 确定绝对路径

无法使用绝对路径导入

对ClassLoader使用绝对路径getResourceAsStream()

Angular on Electron - 使用 Observable 更新 UI

在 Electron 中使用 SerialPort 和 Angular 在构建时失败

使用Gatsby在Markdown发布中使用特色图片的绝对路径

在使用ParcelJS构建的Cypress测试中,如何在绝对路径中使用导入?

创建绝对路径

Jsoup绝对路径

如何在 React 或 Next.js 中使用绝对路径而不是相对路径?

为什么在webpack的输出属性的入口点和绝对路径中使用相对路径?