Changing FileNames using RegEx and Recursion

Posted by yeahumok on Stack Overflow See other posts from Stack Overflow or by yeahumok
Published on 2010-06-10T15:40:50Z Indexed on 2010/06/10 15:42 UTC
Read the original article Hit count: 404

Filed under:
|
|
|

Hello

I'm trying to rename files that my program lists as having "illegal characters" for a SharePoint file importation. The illegal characters I am referring to are: ~ # % & * {} / \ | : <> ? - ""

What i'm trying to do is recurse through the drive, gather up a list of filenames and then through Regular Expressions, pick out file names from a List and try to replace the invalid characters in the actual filenames themselves.

Anybody have any idea how to do this? So far i have this: (please remember, i'm a complete n00b to this stuff)

class Program
{
    static void Main(string[] args)
    {
        string[] files = Directory.GetFiles(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing", "*.*", SearchOption.AllDirectories);
        foreach (string file in files)
        {
            Console.Write(file + "\r\n");


        }
        Console.WriteLine("Press any key to continue...");
        Console.ReadKey(true);



        string pattern = " *[\\~#%&*{}/:<>?|\"-]+ *";
        string replacement = " ";
        Regex regEx = new Regex(pattern);

        string[] fileDrive = Directory.GetFiles(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing", "*.*", SearchOption.AllDirectories);
        StreamWriter sw = new StreamWriter(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing\File_Renames.txt");
        foreach(string fileNames in fileDrive)
        {

        string sanitized = regEx.Replace(fileNames, replacement);
        sw.Write(sanitized + "\r\n");
        }
        sw.Close();



    }






}

So what i need to figure out is how to recursively search for these invalid chars, replace them in the actual filename itself. Anybody have any ideas?

© Stack Overflow or respective owner

Related posts about c#

Related posts about regex