Iniciar Sesión

Ver la Versión Completa : [Sintaxis] Como saber si existe una carpeta


Begoguay
11 de marzo de 2020, 17:49
Hola foreros.

Necesito saber si existe una carpeta. He estado mirando en las rutinas _CBL, y no encuentro ninguna que me sirva.

¿Alguien sabe alguna forma?

Un saludo.

Gusaiello
11 de marzo de 2020, 21:19
Lo mas simple que se me ocurre es intentar crearla, si el resultado es exitoso es por que no existía y si no lo es, es por que acabas de crearla (la carpeta no existía).

Luego veras que hacer con ella, si usarla o eliminarla.

Kuk
14 de marzo de 2020, 11:27
Begoguay, prueba con esto: 4.3 CBL_CHECK_FILE_EXIST (https://software.fujitsu.com/jp/manual/manualfiles/m150010/b1wd3360/01enz200/b3360-00-04-03-00.html)

---------- Post añadido : 11:27 ---------- Post anterior : 10:55 ----------

Begoguay, cuéntanos si ha funcionado ;)

Begoguay
19 de marzo de 2020, 16:07
Kuk, siento decirte que con eso no funciona.

Gusaiello, eso ya lo había pensado, pero no quiero crear una carpeta que de momento no voy a utilizar para nada.

Gracias a los dos igualmente

Un saludo

Kuk
19 de marzo de 2020, 18:13
Begoguay, creo recordar que a mi con el CBL_CHECK_FILE_EXIST2 me funcionaba.

Si no, lo que se me ocurre es que pongas en el form un CmFolder, le metas la ruta "padre" que te interesa y luego con un bucle verificas todas las carpetas por su nombre.

No sé si me explico

Y luego, claro está, siempre te queda la WinAPI : GetFileAttributesA function (fileapi.h) - Win32 apps | Microsoft Docs (https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfileattributesa)

Armando
19 de marzo de 2020, 21:05
Hola, podes tambien chequear si te deja crear un archivo, si da error, pasas a crear el directorio:
Saludos
armando

VALIDO-DIR.
MOVE POW-FALSE TO bNO-DIR.

OPEN OUTPUT MARQUITA.
IF NOT TODO-OK
MOVE POW-TRUE TO bNO-DIR
GO FVALIDO-DIR
END-IF.

CLOSE MARQUITA.
DELETE FILE MARQUITA.
FVALIDO-DIR.
EXIT.

CREO-DIR.
CALL "CBL_CREATE_DIR"
USING cPATH-ACREAR
RETURNING status-code.
CONTROLO-CREADO.
IF status-code NOT = 0 *>aca se da mensaje