Matlab - listar directorios en una listbox

 
Vista:

listar directorios en una listbox

Publicado por jose (20 intervenciones) el 05/11/2012 20:34:31
El caso es que necesitaba que en una listbox se mostrasen todas las carpetas contenidas en un directorio raiz.

1
2
3
function listbox3_Callback(hObject, eventdata, handles)
files = dir(path('C:\PROYECTO BUENO\tecnologias\'));
set(handles.listbox3, 'string', {files.name})


Con ese codigo me muestra las carpetas de dicho directorio, pero tengo dos problemas.

El primero es que tengo que pinchar en la listbox para que salga el listado(yo quiero que tan pronto se ejecute la gui, se me muestren todas las carpetas)

Lo segundo es que se me queda colgado el matlab y debo cerrarlo al ir pinchando en cada una de las carpetas listadas (necesitaria que al pinchar sobre una, se guardase su nombre en una variable para luego poder borrar la carpeta pulsando en un boton "borrar")

Alguna solucion¿? Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

listar directorios en una listbox

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/11/2012 09:01:40
Respuesta para tu primera pregutna.

1
2
3
4
5
6
7
function imprimir_coseno_OpeningFcn(hObject, eventdata, handles, varargin)
%==========================
files = dir(path('C:\PROYECTO BUENO\tecnologias\'));
set(handles.listbox3, 'string', {files.name})
%======================================
handles.output = hObject;
guidata(hObject, handles);



Respuesta para segunda pregunta.
Una vez te habia dicho que por lo menos brindaras mayor informacion, ya que con la forma como preguntas, tus preguntas no son claras y no puedo darte una respuesta precisa a tu pregunta, claro te puedo dar sugerencias para quedar bien contigo, o derrepente las sugerencias no te sirvan.

Hacer un codigo nuevo para tu pregunta implica tiempo, es por eso para facilitar las cosas pido toda la informacion posible para darles una respuestas acertadas a las preguntas.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

listar directorios en una listbox

Publicado por jose (20 intervenciones) el 06/11/2012 18:16:16
Hola Jose.

El caso es que el unico codigo que he metido en la gui es ese, para que se muestre el contenido de las carpetas del directorio que viene en el codigo.

El codigo que me has puesto tu, no es igual al que indiqué yo? es que no logro ver la diferencia, y en todo caso no llega a mostrar el contenido de dicho directorio.

Un saludo y gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

listar directorios en una listbox

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/11/2012 18:29:34
Claro que no es igual, porque yo nose, conque nombre estas guardando tu guide,
function imprimir_coseno_OpeningFcn(hObject, eventdata, handles, varargin)
seguro te refires a esta parte, por eso te decia que debes poner tu guide completo para ver exactamente cual es el nombre de tu guide, pues el nombre de mi guide es imprimir_coseno.m, imprimir_coseno.fig, por eso tengo ese nombre.
Y por poner parte de tu codigo en el foro, ahora estas descontento con las respuestas que te doy.
La respuesta que doy es correcta, pero lo que veo que tu nivel de conocomiento matlab guide es minimo.

Fijate en el comentario que hago a tu segunda pregunta. Por algo pongo los comentarios, para que las personas que hagan su preguntas leean los comentarios y mejoren sus preguntas. Pero en tu caso, haces caso omiso a mis comentarios.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

listar directorios en una listbox

Publicado por jose (20 intervenciones) el 06/11/2012 21:27:04
Ok, te refieres a la primera linea de codigo de la gui?

En este caso seria:

1
function varargout = borrar_tecnologia(varargin)


Luego unicamente tengo una listbox con el tag "listbox3" y el codigo que he escrito en ella:

1
2
3
function listbox3_Callback(hObject, eventdata, handles)
 files = dir(path('C:\PROYECTO BUENO\tecnologias\'));
set(handles.listbox3, 'string', {files.name})



El caso es que al sustituir mi nombre de gui, por el que has puesto en tu solucion, no se muestra nada en el listbox al ejecutar la gui.

1
2
3
4
5
function borrar_tecnologia_OpeningFcn(hObject, eventdata, handles, varargin)
files = dir(path('C:\PROYECTO BUENO\tecnologias\'));
set(handles.listbox3, 'string', {files.name})
handles.output = hObject;
guidata(hObject, handles);


De todas formas voy a hacerlo desde un archivo limpio por si acaso.


Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

listar directorios en una listbox

Publicado por jose (20 intervenciones) el 06/11/2012 21:45:32
Poniendo el error que me da, te puede servir de algo?

A ver si esto es el codigo completo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function varargout = borrar_tecnologia(varargin)
 
 
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @borrar_tecnologia_OpeningFcn, ...
                   'gui_OutputFcn',  @borrar_tecnologia_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
 
function borrar_tecnologia_OpeningFcn(hObject, eventdata, handles, varargin)
files = dir(path('C:\PROYECTO BUENO\tecnologias\'));
set(handles.listbox3, 'string', {files.name})
handles.output = hObject;
guidata(hObject, handles);
 
 
% Choose default command line output for borrar_tecnologia
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
 
 
function varargout = borrar_tecnologia_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function listbox3_Callback(hObject, eventdata, handles)
 
function listbox3_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



Lo demas serian comentarios.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar