MATLAB,Octave:使用其中包含 space 的文件夹名称
MATLAB, Octave: working with folder names that have space in them
在 MATLAB 中,实际上是 Octave,我想找到当前文件夹中所有子文件夹的列表,所以我使用这个:
subFolder = dir;
这给出了当前文件夹中所有子文件夹的列表。这 returns 一个结构,其一个元素是名称。假设我有两个名称为 subfolder 1A
和 subfolder 1B
.
的子文件夹
现在我想转到这些文件夹。然后我这样做:
cd subFolder(1).name
但是我得到这个错误:
error: subFolder(1).name: No such file or directory
如果我这样做:
cd "subfolder 1A"
一切正常。解决方法是什么?
文件夹名称中的 space 在这种情况下是一个红色的鲱鱼。这不是问题的根源。实际问题是您需要调用 cd
function using function syntax instead of command syntax (i.e. use parentheses; related question ):
cd(subFolder(1).name);
当您使用命令语法时,subFolder(1).name
本身被视为 cd
的字符串参数(即它正在寻找名为 'subFolder(1).name'
的文件夹)。对于函数语法,结构数组字段中中包含的字符串用作参数。
为了使您的代码更加健壮,您还可以使用 dir
返回的 'folder'
字段:
cd(fullfile(subFolder(1).folder, subFolder(1).name));
无论您当前所在的目录如何,这都会转到所需的文件夹,因为它指定了绝对路径而不是部分路径(相对于当前目录)。
在 MATLAB 中,实际上是 Octave,我想找到当前文件夹中所有子文件夹的列表,所以我使用这个:
subFolder = dir;
这给出了当前文件夹中所有子文件夹的列表。这 returns 一个结构,其一个元素是名称。假设我有两个名称为 subfolder 1A
和 subfolder 1B
.
现在我想转到这些文件夹。然后我这样做:
cd subFolder(1).name
但是我得到这个错误:
error: subFolder(1).name: No such file or directory
如果我这样做:
cd "subfolder 1A"
一切正常。解决方法是什么?
文件夹名称中的 space 在这种情况下是一个红色的鲱鱼。这不是问题的根源。实际问题是您需要调用 cd
function using function syntax instead of command syntax (i.e. use parentheses; related question
cd(subFolder(1).name);
当您使用命令语法时,subFolder(1).name
本身被视为 cd
的字符串参数(即它正在寻找名为 'subFolder(1).name'
的文件夹)。对于函数语法,结构数组字段中中包含的字符串用作参数。
为了使您的代码更加健壮,您还可以使用 dir
返回的 'folder'
字段:
cd(fullfile(subFolder(1).folder, subFolder(1).name));
无论您当前所在的目录如何,这都会转到所需的文件夹,因为它指定了绝对路径而不是部分路径(相对于当前目录)。