mafalda
mafalda

Reputation: 47

Path with white spaces can't create a file using File.CreateText(filePath) c#

I'm developing a console application that parse xml files and generate a txt file. I have created the file path to store the new file, but this is having white spaces, like this:

string filePath = "C:\\Program Files\\my path\\fileName.txt"

but I'm creating the path using:

string filePath = Path.Combine(temp, "fileName.txt");

while temp is the previous path. And when I call:

StreamWriter sw = File.CreateText(filePath);

Is giving this exception: Could not find a part of the path: filePath

Can someone help me with this issue?? how can I create the file with this path?

Upvotes: 2

Views: 3698

Answers (3)

uowzd01
uowzd01

Reputation: 1000

Use this:

string filePath = @"C:\Program Files\my path\fileName.txt"

Upvotes: 1

Johnno Nolan
Johnno Nolan

Reputation: 29657

there looks like a problem with you file path

try@"C:\Program Files\my path\fileName.txt"

Note: You've updated your question with the changes mentioned in the comments.

Your issue is probably that 'my path' doesn't exist as this console application works OK for me when run as an administrator. When not run I get an UnathorizedAccessException

class Program
{
    static void Main(string[] args)
    {
        try
        {
            var temp = @"C:\\Program Files\\my path\\";
            string filePath = Path.Combine(temp, "fileName.txt");
            StreamWriter sw = File.CreateText(filePath);
            Console.WriteLine("I got here");
        }
        catch (Exception)
        {
            Console.WriteLine("I didn't");
            //
        }

    }
}

Upvotes: 3

Matthew Watson
Matthew Watson

Reputation: 109822

You have single backslashes in the string. Make them double backslashes:

string filePath = "C:\\Program Files\\my path\\fileName.txt"

Upvotes: 0

Related Questions