【问题标题】:MATLAB, Octave: working with folder names that have space in themMATLAB,Octave:使用其中有空格的文件夹名称
【发布时间】:2018-09-08 14:26:22
【问题描述】:

在 MATLAB 中,实际上是 Octave,我想找到当前文件夹中所有子文件夹的列表,所以我使用这个:

subFolder = dir;

这给出了当前文件夹中所有子文件夹的列表。这将返回一个结构,其一个元素是名称。假设我有两个名为 subfolder 1Asubfolder 1B 的子文件夹。

现在我想去这些文件夹。然后我这样做:

cd subFolder(1).name

但我收到此错误:

error: subFolder(1).name: No such file or directory

如果我这样做:

cd "subfolder 1A"

一切正常。解决办法是什么?

【问题讨论】:

    标签: string matlab octave directory


    【解决方案1】:

    在这种情况下,文件夹名称中的空格是红鲱鱼。这不是问题的根源。实际问题是您需要使用function syntax instead of command syntax 调用cd 函数(即使用括号;相关问题here):

    cd(subFolder(1).name);
    

    当您使用命令语法时,subFolder(1).name 本身被视为cd 的字符串参数(即它正在寻找一个名为'subFolder(1).name' 的文件夹)。使用函数语法,包含在结构数组字段中的字符串用作参数。

    为了使您的代码更加健壮,您还可以使用dir 返回的'folder' 字段:

    cd(fullfile(subFolder(1).folder, subFolder(1).name));
    

    无论您当前所在的目录如何,这都会转到所需的文件夹,因为它指定的是绝对路径而不是部分路径(相对于当前目录)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      相关资源
      最近更新 更多