文件系统 (fs) 找不到包含空格的文件(Node js)

Sag*_*gar 2 javascript fs node.js

我开发了一个文件系统,我从一个文件夹开始,并在用户单击文件夹和文件时递归地显示它们。

我在遍历文件名之间没有空格的地方没有问题,但是一旦我输入一个带有空格的名称,我就会收到一个错误。例子:

Home
 .My Documents
 .Downloads
 .Desktop
Run Code Online (Sandbox Code Playgroud)

我收到的 fs 的错误是

REQUEST ./Home/My%20Documents
{ Error: ENOENT: no such file or directory, scandir './Home/My%20Documents'
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: './Home/My%20Documents' }
Run Code Online (Sandbox Code Playgroud)

我试着查了一下,但谁能给我一个关于如何解决这个问题的提示?

内容.hbs

{{#each contents}}
            <tr>
                {{#if isFolder}}
                <td>
                    <a href="/{{name}}">
                    <div><img style="vertical-align:middle" src="folder.png" height="32" width="32" > <span style="margin-left: 20px">{{name}}</span></div></a> </td>
                <td></td>
                <td></td>
                {{else}}
                <td><div><img style="vertical-align:middle" src="file.png" height="32" width="32" > <span style="margin-left: 20px">{{name}}</span></div> </td>
                <td>{{size}} Mb</td>
                <td></td>
                {{/if}}
            </tr>
            {{/each}}
Run Code Online (Sandbox Code Playgroud)

Ren*_*ama 6

您似乎正在从查询字符串接收路径。一旦它被清楚地编码,你将不得不做path = decodeURIComponent(path)。