GUIでのファイル選択について
8 ビュー (過去 30 日間)
古いコメントを表示
GUIでファイルを選択する時に、2回目以降は前回開いたファイルパスのところを開くにはどのようにすればできますか?
下はコードの一部です
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[FileName1,PathName1] = uigetfile( ...
{ '*.*', '全てのファイル (*.*)'}, ...
'Pick a file','MultiSelect', 'on','C:\');
Bagsheet1 = strcat(PathName1,FileName1);
assignin('base', 'Bsheet1', Bsheet1);
set(handles.edit1,'String',Bsheet1);
1回目の時はC:\のファイル画面が開かれますが、これだと2回目以降も同じになります。
例えば1回目のファイル選択でC:\の開かれたファイルからD:\のファイルで選択した時、2回目のファイル選択画面をD:\になるようにしたいです。
宜しくお願いします。
0 件のコメント
採用された回答
Jiro Doke
2019 年 2 月 26 日
編集済み: Jiro Doke
2019 年 2 月 26 日
カスタム設定を使って、パラメーターを記憶させるのが良いと思います。
% カスタム設定が定義されているか確認
if ispref('MyPreferences','LastUigetfileFolder')
folder = getpref('MyPreferences','LastUigetfileFolder');
if ~ischar(folder)
folder = 'C:\';
end
else
folder = 'C:\';
end
[FileName1,PathName1] = uigetfile( ...
{ '*.*', '全てのファイル (*.*)'}, ...
'Pick a file','MultiSelect', 'on',folder);
% 選択されたフォルダーをカスタム設定に記憶させる
if ~isnumeric(PathName1)
setpref('MyPreferences','LastUigetfileFolder',PathName1)
end
4 件のコメント
Jiro Doke
2019 年 2 月 26 日
解決できてよかったです!
因みに、キャンセルボタンを押した場合フォルダー名はキャンセルされたという事を示すために数字の0として戻ってきます。その数字が誤って次回のフォルダー名として使われていたのが原因です。修正後のコードでは数字として戻ってきた場合はフォルダーを記憶しないようなエラーチェックを加えてあります。
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!