如何检查是否可以将文件写入目录?
问题描述:
尝试寻找可能有用但功能不佳的功能。我最好的解决方法是尝试使用fopen在目录中创建一个虚拟文件,如果它返回-1,那么我知道我不能创建一个文件,并且不执行我的其他代码。如果我成功创建了该文件,那么我将删除它并继续使用其余的代码。如何检查是否可以将文件写入目录?
这似乎是一个相当不雅的方法,我宁愿只是有一行代码告诉我我没有在给定目录中的写入权限。有没有办法做到这一点?
答
您可以创建一个文件夹:
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