如何检查是否可以将文件写入目录?

时间:2014-10-22 08:29:10

标签: matlab

尝试寻找可能有用但没有运气的功能。我最好的解决方法是尝试使用fopen在目录中创建一个虚拟文件,如果它返回-1,那么我知道我无法创建一个文件而且我不执行其余的代码。如果我成功创建了该文件,我将删除它并继续使用我的其余代码。

这似乎是一种相当不优雅的方法,我宁愿只有一行代码告诉我在给定目录中没有写权限。有没有办法实现这个目标?

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