尝试寻找可能有用但没有运气的功能。我最好的解决方法是尝试使用fopen在目录中创建一个虚拟文件,如果它返回-1,那么我知道我无法创建一个文件而且我不执行其余的代码。如果我成功创建了该文件,我将删除它并继续使用我的其余代码。
这似乎是一种相当不优雅的方法,我宁愿只有一行代码告诉我在给定目录中没有写权限。有没有办法实现这个目标?
答案 0 :(得分:3)
您可以创建一个文件夹:
mkdir('folderName')
然后使用movefile将文件复制到该文件夹中:
[status,message,messageid] = movefile('myfunction.m','oldfunction.m');
状态是成功的逻辑1或错误的逻辑0。
您还可以获取文件夹/文件的权限:
fileattrib('C:\my_MATLAB_files\doc')
ans =
Name: 'C:\my_MATLAB_files\doc'
archive: 0
system: 0
hidden: 0
directory: 1
UserRead: 1
UserWrite: 1
UserExecute: 1
GroupRead: NaN
GroupWrite: NaN
GroupExecute: NaN
OtherRead: NaN
OtherWrite: NaN
OtherExecute: NaN
所以你可以这样做:
[S,M] = fileattrib('Directory');
M.UserWrite
ans =
1