2014-10-22 113 views
0

嘗試尋找可能有用但功能不佳的功能。我最好的解決方法是嘗試使用fopen在目錄中創建一個虛擬文件,如果它返回-1,那麼我知道我不能創建一個文件,並且不執行我的其他代碼。如果我成功創建了該文件,那麼我將刪除它並繼續使用其餘的代碼。如何檢查是否可以將文件寫入目錄?

這似乎是一個相當不雅的方法,我寧願只是有一行代碼告訴我我沒有在給定目錄中的寫入權限。有沒有辦法做到這一點?

回答

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 
相關問題