Acceder au nom d’un fichier

Jeudi 27 janvier , j’ai demandé sur le MATLAB newsgroup comment on pouvait retrouver le nom d’un fichier en connaissant juste son fid (file identifier)

Je m’explique. Imaginons vous ouvrez un fichier en écriture:

fid =fopen(fullfile(matlabroot,’matlabgeek.txt’),’w+’)

Comment faire en connaissant juste la variable fid pour retrouver le nom du fichier , c’est à dire matlabgeek.txt.

Au début on m’a proposé la solution suivante:

>> filename =System.IO.DirectoryInfo(fopen(fid)).FullName

filename =

C:\MATLAB\SOF\r2010b\matlabgeek.txt

Paie ta commande de Geek!!

Seul hic, c’est que ça en marchera que sur Windows . Donc cette solution ne m’intéressait pas.
Et en plus apparemment il faut avoir .NET installé ….

Finalement c’est Loren Shure qui m’a proposé une solution toute simple et cross-platefrome, c’est de refaire un fopen sur le fid ! :

>>filename =fopen(fid)

filename =

C:\MATLAB\SOF\r2010b\matlabgeek.txt

Voilà , je voulais partager ça avec vous, aucun de mes collègues ne connaissait ce trick.

A noter que nul part dans la doc de fopen on trouve cette astuce.
Ce MATLAB trick avec fopen fonctionne dans toutes les releases MATLAB … même en R12SP1 !

Laisser un commentaire