The `table.fileInfo` action from the CAS (Cloud Analytic Services) 'table' action set is used to retrieve metadata about files stored in a directory or a data source referenced by a caslib. It is possible to apply filters based on wildcards to target specific files, obtain file sizes in kilobytes, and other attributes like owner, group, permissions, and timestamps. Adding a caslib via `table.addCaslib` is often a prerequisite to interact with specific data paths on the CAS server.
Data Analysis
Type : CREATION_INTERNE
The examples provide SAS code that assumes the existence of directories and files. The user must ensure that the specified paths are valid in their CAS environment and that the corresponding files exist, or adapt the paths and create dummy files if necessary. The actual creation of these files and directories is not performed by the script.
1 Code Block
PROC CAS / table.addCaslib / table.fileInfo Data
Explanation : This example initializes a CAS session and configures a temporary caslib named 'mycaslib' that points to a data directory (e.g., `/tmp/my_cas_data`). It is essential that this directory exists on the CAS server and contains files for the `table.fileInfo` action to list them. The action is called without filtering parameters to display all files, their permissions, owners, groups, and sizes.
Copied!
/* Préparation de l'environnement */
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
/* Pour que cet exemple fonctionne, créez un répertoire '/tmp/my_cas_data' sur votre serveur CAS */
/* et placez-y quelques fichiers (ex: file1.txt, file2.csv, etc.) */
proc cas;
session casauto;
/* Supprimer la caslib si elle existe déjà pour éviter les erreurs (optionnel) */
/* et nettoyer les fichiers, mais ceci n'est qu'un exemple illustratif */
/* table.dropCaslib / caslib="mycaslib" nozap; run; */
/* Ajouter une caslib temporaire pointant vers le répertoire de données */
/* Adaptez le chemin '/tmp/my_cas_data' à un répertoire existant et accessible par votre serveur CAS */
table.addCaslib /
caslib="mycaslib",
active=true,
datasource={srctype="PATH"},
path="/tmp/my_cas_data";
run;
/* Lister tous les fichiers dans la nouvelle caslib */
table.fileInfo /
caslib="mycaslib";
run;
quit;
1
/* Préparation de l'environnement */
2
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5
6
/* Pour que cet exemple fonctionne, créez un répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7
/* et placez-y quelques fichiers (ex: file1.txt, file2.csv, etc.) */
8
9
PROC CAS;
10
SESSION casauto;
11
12
/* Supprimer la caslib si elle existe déjà pour éviter les erreurs (optionnel) */
13
/* et nettoyer les fichiers, mais ceci n'est qu'un exemple illustratif */
/* Ajouter une caslib temporaire pointant vers le répertoire de données */
17
/* Adaptez le chemin '/tmp/my_cas_data' à un répertoire existant et accessible par votre serveur CAS */
18
TABLE.addCaslib /
19
caslib="mycaslib",
20
active=true,
21
datasource={srctype="PATH"},
22
path="/tmp/my_cas_data";
23
RUN;
24
25
/* Lister tous les fichiers dans la nouvelle caslib */
26
TABLE.fileInfo /
27
caslib="mycaslib";
28
RUN;
29
QUIT;
2 Code Block
PROC CAS / table.addCaslib / table.fileInfo Data
Explanation : This scenario uses a wildcard filter ('%ventes%') in the `path` parameter of `table.fileInfo` to list only files whose names contain the string 'ventes' within the 'mycaslib' caslib. The `kbytes=true` option is also specified to display the size of these files in kilobytes, offering a more concise view of the relevant data volumes. The user must ensure that files matching this pattern exist in the `/tmp/my_cas_data` directory (or the adapted path).
Copied!
/* Préparation de l'environnement */
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
/* contient des fichiers dont le nom inclut 'ventes', par exemple 'rapport_ventes_2023.txt', 'analyse_ventes_Q1.csv'. */
proc cas;
session casauto;
/* Supprimer et recréer la caslib si nécessaire (pour s'assurer qu'elle pointe bien) */
/* table.dropCaslib / caslib="mycaslib" nozap; run; */
table.addCaslib /
caslib="mycaslib",
active=true,
datasource={srctype="PATH"},
path="/tmp/my_cas_data"; /* Adaptez le chemin */
run;
/* Filtrer les fichiers contenant 'ventes' et afficher la taille en kBytes */
table.fileInfo /
caslib="mycaslib",
path='%ventes%', /* Motif générique pour filtrer les fichiers contenant 'ventes' */
kbytes=true; /* Afficher la taille en kilo-octets */
run;
quit;
1
/* Préparation de l'environnement */
2
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5
6
/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7
/* contient des fichiers dont le nom inclut 'ventes', par exemple 'rapport_ventes_2023.txt', 'analyse_ventes_Q1.csv'. */
8
9
PROC CAS;
10
SESSION casauto;
11
12
/* Supprimer et recréer la caslib si nécessaire (pour s'assurer qu'elle pointe bien) */
/* Filtrer les fichiers contenant 'ventes' et afficher la taille en kBytes */
22
TABLE.fileInfo /
23
caslib="mycaslib",
24
path='%ventes%', /* Motif générique pour filtrer les fichiers contenant 'ventes' */
25
kbytes=true; /* Afficher la taille en kilo-octets */
26
RUN;
27
QUIT;
3 Code Block
PROC CAS / table.addCaslib / table.fileInfo Data
Explanation : This example demonstrates how to use `table.fileInfo` for a finer exploration of metadata. It filters files using a wildcard pattern (`data_*.txt`), then sorts the results by file name in ascending order (`sortby={{name="name", order="asc"}}`). The information displayed includes the size in kilobytes (`kbytes=true`) and detailed modification dates/times (`showLongTime=true`). The user must ensure that files matching the pattern exist in the `/tmp/my_cas_data` directory.
Copied!
/* Préparation de l'environnement */
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
/* contient des fichiers nommés par exemple 'data_A.txt', 'data_Z.txt', 'data_M.txt'. */
proc cas;
session casauto;
/* Supprimer et recréer la caslib si nécessaire */
/* table.dropCaslib / caslib="mycaslib" nozap; run; */
table.addCaslib /
caslib="mycaslib",
active=true,
datasource={srctype="PATH"},
path="/tmp/my_cas_data"; /* Adaptez le chemin */
run;
/* Lister les fichiers, trier par nom, afficher taille et date/heure détaillée */
table.fileInfo /
caslib="mycaslib",
path='data_*.txt', /* Filtrer les fichiers commençant par 'data_' et se terminant par '.txt' */
kbytes=true,
sortby={{name="name", order="asc"}}, /* Trier par nom de fichier en ordre croissant */
showLongTime=true; /* Afficher la date et l'heure complètes */
run;
quit;
1
/* Préparation de l'environnement */
2
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5
6
/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7
/* contient des fichiers nommés par exemple 'data_A.txt', 'data_Z.txt', 'data_M.txt'. */
8
9
PROC CAS;
10
SESSION casauto;
11
12
/* Supprimer et recréer la caslib si nécessaire */
/* Lister les fichiers, trier par nom, afficher taille et date/heure détaillée */
22
TABLE.fileInfo /
23
caslib="mycaslib",
24
path='data_*.txt', /* Filtrer les fichiers commençant par 'data_' et se terminant par '.txt' */
25
kbytes=true,
26
sortby={{name="name", order="asc"}}, /* Trier par nom de fichier en ordre croissant */
27
showLongTime=true; /* Afficher la date et l'heure complètes */
28
RUN;
29
QUIT;
4 Code Block
PROC CAS / table.fileInfo
Explanation : This final example illustrates two aspects. First, it attempts to use `table.fileInfo` with a deliberately non-existent `caslib` ('caslib_non_existante') to demonstrate how the system handles errors. Second, it shows how to interact with an existing system caslib, such as 'Public' (often present in SAS Viya environments), to list the SASHDAT (`.sashdat`) files it contains, displaying their sizes. This highlights the use of shared CAS resources without requiring prior caslib configuration.
Copied!
/* Préparation de l'environnement */
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
proc cas;
session casauto;
/* Tentative de listage dans une caslib inexistante */
/* Cette action est intentionnelle pour montrer la gestion des erreurs. */
/* Elle devrait générer un avertissement ou une erreur dans le log CAS. */
table.fileInfo /
caslib="caslib_non_existante"; /* Caslib supposée ne pas exister */
run;
/* Lister les fichiers dans la caslib 'Public' (une caslib système courante sur SAS Viya) */
/* 'Public' est une caslib souvent disponible par défaut sur SAS Viya pour les données partagées. */
/* Aucune création de caslib n'est nécessaire pour cet exemple. */
/* Adaptez le motif '%.sashdat' si vous recherchez d'autres types de fichiers dans 'Public'. */
table.fileInfo /
caslib="Public", /* Utilisation d'une caslib système courante */
kbytes=true,
path='%.sashdat'; /* Filtrer pour les fichiers SASHDAT (fichiers de données CAS) */
run;
quit;
1
/* Préparation de l'environnement */
2
/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3
options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4
cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5
6
PROC CAS;
7
SESSION casauto;
8
9
/* Tentative de listage dans une caslib inexistante */
10
/* Cette action est intentionnelle pour montrer la gestion des erreurs. */
11
/* Elle devrait générer un avertissement ou une erreur dans le log CAS. */
12
TABLE.fileInfo /
13
caslib="caslib_non_existante"; /* Caslib supposée ne pas exister */
14
RUN;
15
16
/* Lister les fichiers dans la caslib 'Public' (une caslib système courante sur SAS Viya) */
17
/* 'Public' est une caslib souvent disponible par défaut sur SAS Viya pour les données partagées. */
18
/* Aucune création de caslib n'est nécessaire pour cet exemple. */
19
/* Adaptez le motif '%.sashdat' si vous recherchez d'autres types de fichiers dans 'Public'. */
20
TABLE.fileInfo /
21
caslib="Public", /* Utilisation d'une caslib système courante */
22
kbytes=true,
23
path='%.sashdat'; /* Filtrer pour les fichiers SASHDAT (fichiers de données CAS) */
24
RUN;
25
QUIT;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
« table.fileInfo with the table.columnInfo action once a file is loaded. While fileInfo tells you about the "container," columnInfo reveals the "content," helping you verify that your physical CSV or SASHDAT schema matches your analytical requirements. »
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.