Angular-如何检查没有fs的文件是否存在

时间:2018-11-02 12:18:24

标签: typescript fs angular7

fs seems not to work anymore since Angular 6 我还没有发现检查文件是否存在的另一种方法。 在我的特殊情况下,我必须检查资产文件夹中是否存在特定的图像文件,例如像这样的东西:

if (fileExists('path')) { doSomething(); }

我尝试安装file-exists package,但这使用了

const fs = require('fs')
const path = require('path')

显然不是Angular 7支持的。

有人可以提供帮助吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

下面是一个代码段,该代码段返回一个布尔值Observable,用于确定文件是否存在于给定的URL:

fileExists(url: string): Observable<boolean> {
    return this.httpClient.get(url)
        .pipe(
            map(response => {
                return true;
            }),
            catchError(error => {
                return of(false);
            })
        );
}

或者,同样的事情,但以更简洁的单行格式显示:

public fileExists(url: string): Observable<boolean> {
    return this.httpClient.get(url).pipe(map(() => true), catchError(() => of(false)));
}

答案 1 :(得分:0)

谢谢,scipper。是的,这就是我现在管理的方式。但我希望会有一个更简单的单行函数来检查这一点。

这里是代码(它返回文件夹,而不是文件,因此我可以将其用于更多目的):

getFolder(subFolder: string): Observable<string> {
    const folderPath = `assets/folder/${subFolder.toLocaleUpperCase()}`;
    return this.httpClient
      .get(`${folderPath}/file.png`, { observe: 'response', responseType: 'blob' })
      .pipe(
        map(response => {
          return folderPath;
        }),
        catchError(error => {
          return of('assets/folder/default');
        })
      );
  }