2016-02-08 39 views
1

使用FILTERSPEC我想開一個對話框,選擇一個文件,並顯示具有一定的擴展名的文件,但不包括基於模式匹配(正則表達式或其他方式)的某些文件名,文件名/否定詞。排除在uigetfile

例如,我想顯示CSV文件,而不是那些有「ABC」在他們的文件名。

來顯示所有的.csv文件,我可以做的(不是我想要的):

[filename, pathname] = uigetfile({'*.csv', 'CSV Files (*.csv)'}); 

使用正則表達式,我可以成功地排除文件名以「ABC」如下(感謝How to negate specific word in regex?):

filenames = {'myfile.csv'; 'myfile-abc.csv'} 
regexp(filenames, '^(?!.*abc).*.csv') 

但是,以下不工作:

[filename, pathname] = uigetfile({'^(?!.*abc).*.csv', 'CSV Files (*.csv)'}); 

我怎麼能NEG從文件名中發生了一個詞?看來我只能做正面通配符(*)而不能否定。

回答

0

沒有這似乎是不可能的。如果你看看Matlab中的實現,你會發現Java標準對話框被調用。您可以開發自己的對話框,也可以稍後檢查對話框的輸出。