As part of my testing routines for the new IBMi Data Distribution commands (DSTDTA and DSTSPLF) I was creating and testing all kinds of documents in the integrated File system. Taking any file from the good ole iSeries and converting it to TXT, PDF, XML, TIF, CSV and plopping a copy into the IFS or DLS, then sending it as a very saucy looking email to the users… It works beautifully now but “whats that got to do with malformed file names” I hear you mutter.
So, while I was writing these programs I had a brain-fart and accidentally create IFS objects with completely invalid file names… its possible to actually call a file ‘\this\is\a\file.txt‘ (with slashes as part of the file name) and as you can imagine Windows Explorer just completely gets its knickers in a twist. trying to figure out what folder that is in…
So I have this file called ‘\projex\test.pdf’ and its stored in a folder called ‘/home/nlitten’
So lets go and do a WRKLNK to delete the file in question. No Joy. It tells me it cant delete it, because it cant find it… aaaargh!!!!
These problems happen because your program that is creating IFS files uses a ‘\’ when it should have used a ‘/’ (for internal IBMi IFS operations).
Running a RCLSTG wont help as these files aren’t damaged they’re just named badly. Neither will attacking it from within iSeries Navigator. It just seems to be stuck there… forever… eating up some storage.
So how do we delete malformed IFS documents?
It’s actually very easy — with IBMi’s super sexy and simple EDTF command.
If you use EDTF at a root level:
you get a very basic screen showing every object in your IFS listing.
Navigate to your folder containing the malformed files, select them with a 4 (or even simply ‘9’ the folder to recursively delete the lot) and press ENTER and Voila!
Dirty files are completed killed.
EDTF is like a 1980’s Bulletin Board version of SEU which works for any streamfile or even for flat files defined in libraries on the 400.
IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.
How do we Check for Batch or Interactive in CLLE
Developerworks Connections Sunset – How to Extend RDi
Why use IBM i RDi?
How to Install IBM Access Client Solutions (ACS)
IBM i Data Obfuscation – Making Data Foggy Murky and Squinty
How to rename Fresche (BCD) Presto Library – XL_PRESTO
What is AS400 modernization?
IBM i ACS 5250 EMULATOR FONT – and other ridiculous mumbo jumbo
IBM i SQL statement to convert or compare hundred year date format