Estoy tratando de escribir un script para abrir una carpeta donde el nombre de la carpeta contiene un identificador único a medio camino en el nombre.
La carpeta es una subcarpeta de una carpeta que es definida por el usuario junto con el identificador único en un cuadro de diálogo.
:: resultado = Diálogo (
v lista ( "Año 20XX", año = Editar texto ( "17", ancho ( 100 ))) ,
v lista ( "Identificador", iden = Editar texto ( "AA1211", ancho ( 100 )))
) ;
El nombre de todas las subcarpetas tiene la misma estructura ABC-year-iden-xxxx bbb ddddd FFF.
ABC es fijo. year y iden son seleccionados por el usuario pero xbd F son variables.
Intenté obtener el nombre del archivo con el archivo de selección, pero no funciona, ya que el último bit de la misma es variable.
Foldername = Pick file ( "\\ Seleccionar carpeta", "C: \ Users \ 20" || :: resultado El "año" ] || "\" || "ABC-" || :: resultado El "año" ] || "-" || :: resultado El "iden" ] || "- *" ) ;
Otra opción es leer los nombres de las subcarpetas en la carpeta principal e intentar que coincidan, pero no puedo resolverlo con expresiones regulares.
files = Files In Directory ( "C: \ Users \ 20" || :: resultado El "año" ] ) ;
La idea es que una vez tenga este nombre de ruta de carpeta abra un archivo en esta carpeta con el mismo nombre que la subcarpeta. Para eso tengo el script pero solo busco una manera de identificar la ruta de subcarpeta y el nombre de archivo.
podria alguien ayudarme?
Gracias,
CAROLINA DEL SUR
Tal vez use Pick Directory () o puede declararlo antes y usar lo siguiente
RootFolder = "C:/" ; // or Pick Directory()
Year = 2005 ;
SearchTerm = RootFolder || Char(Year) ;
Muchas gracias. Ahora veo cómo obtengo el nombre, pero ¿cómo puedo obtener la ruta de la carpeta?
@ SC1 ,
RootFolder = "C:\"; // Please fill in your desired folder location
FileList = Files In Directory(RootFolder); // Extract list of all files
DesList = list(); // Declare empty list
UserInput = 2005 ;
for(i = 1, i <= N Items(FileList), i++,
If(!IsMissing(Regex(Char(FileList[i]),Concat(Char(UserInput),"-","ABC|FFF")),
Insert Into(DesList,FileList[i]);
);
);
// This will be able to capture all files which are of the format 2005-ABC or 2005-FFF . You can expand on the or clause based on your need