Effacer les filtres
Effacer les filtres

GUIでのファイル選択について

20 vues (au cours des 30 derniers jours)
qrqr
qrqr le 26 Fév 2019
Modifié(e) : qrqr le 27 Sep 2019
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:\になるようにしたいです。
宜しくお願いします。

Réponse acceptée

Jiro Doke
Jiro Doke le 26 Fév 2019
Modifié(e) : Jiro Doke le 26 Fév 2019
カスタム設定を使って、パラメーターを記憶させるのが良いと思います。
% カスタム設定が定義されているか確認
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 commentaires
qrqr
qrqr le 26 Fév 2019
[もしかして uigetfile でキャンセルボタンとか押されたでしょうか。]
→  キャンセルボタン押しました。
修正頂いたコードで試したらできました。(キャンセルボタン押してもエラーは起こりませんでした)
とても助かりました。ありがとうございます。
Jiro Doke
Jiro Doke le 26 Fév 2019
解決できてよかったです!
因みに、キャンセルボタンを押した場合フォルダー名はキャンセルされたという事を示すために数字の0として戻ってきます。その数字が誤って次回のフォルダー名として使われていたのが原因です。修正後のコードでは数字として戻ってきた場合はフォルダーを記憶しないようなエラーチェックを加えてあります。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 環境と設定 dans Help Center et File Exchange

Produits


Version

R2013b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!