path - 函数 addpath() 不会允许访问子文件夹中的文件
问题描述
我在一个子文件夹中有很多数据文件。但是当我尝试使用 addpath() 访问它们时,什么也没有发生。似乎路径搜索被困在运行脚本的文件夹中。
脚本保存在Y:\97 Master\RiometerData\ASCII
我要访问的数据文件存储在
Y:\97 Master\RiometerData\ASCII\S05\2011
我有多个 S01-S05 子文件夹,每个子文件夹都包含几年的数据。
我都试过了addpath('Y:\97 Master\RiometerData\ASCII\S05\2011')
和addpath('S05\2011')
。如果我将文件移动到我的 ASCII 文件夹中,它可以完美运行,但当它存储在子文件夹中时则不行。
addpath('Y:\97 Master\RiometerData\ASCII\S05\2011')
fileName = 'testFile.txt';
if isfile(fileName)
data = load(fileName);
else
fprintf('File %s does> not exist.\n', fileName)
end
代码运行没有任何错误。
解决方案
问题解决了!isfile() 需要完整的路径。addpath() 不够(必要)。例如,将 testfile 移至Y:\97 Master\RiometerData\ASCII\subFolder1\SubFolder2
。这不是这个例子最简单的方法,但如果有很多文件,我需要能够更改路径和文件名。对于单个文件,编写以下内容就足够了:
if isfile('Y:\97 Master\RiometerData\ASCII\subFolder1\SubFolder2\testFile.txt')
%data = load(file)
.
currPath = pwd;
subFolderPath = 'subFolder1\SubFolder2';
filePath = sprintf('%s%c%s%c',currPath,'\',subFolderPath,'\');
fileName = 'testFile.txt'
file = sprintf('%s%s',filePath,fileName)
if isfile(file)
data = load(file)
else
fprintf('File does not exist.\n')
end
推荐阅读
- vue.js - 过滤前的Vuetify自动完成最小字符
- visual-studio-code - VSCode 中的 CSS/HTML 建议,如 WebStorm
- powershell - 添加内容:拒绝访问路径“C:\”
- python-3.x - 保存和加载 Pytorch 模型检查点以进行推理不起作用
- c# - efcore 2.2 在使用 LazyLoadedProxies 时关闭特定查询的代理创建
- swift - 无法将类型“IndexPath”的值分配给类型“Int”
- ios - React Native xcode 项目“标头搜索路径”
- gmail - 在 Gmail 中转发电子邮件的唯一 URL
- sql-server - 选择必须包含某些值的行
- python - reticulate ImportError:Rstudio 1.2 版中没有名为 pandas 的模块