代码之家  ›  专栏  ›  技术社区  ›  MatterOfFact

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

  •  0
  • MatterOfFact  · 技术社区  · 7 年前

    作为 fs seems not to work anymore since Angular 6 我还没有找到其他方法来检查文件是否存在。 在我的特殊情况下,我必须检查assets文件夹中是否存在特定的图像文件,例如:

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

    我试过安装 file-exists package

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

    这显然是不支持角7。

    有人能帮忙吗?谢谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   MatterOfFact    7 年前

    谢谢你,西普。是的,我现在就是这样处理的。但我希望有一个更简单的,单行函数来检查这个。

    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');
            })
          );
      }
    
        2
  •  1
  •   peregrination    5 年前

    下面是一个片段,它返回一个布尔值,用于判断给定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)));
    }