Optimus
Optimus

Reputation: 2210

How to save a text file in Hard Disk using C#

I'm creating a logger for my app and I'm stuck with a problem I need to save my log file in my C drive but when I'm executing the Code its give me an error "Given Path Format Is Not Supported" My current code is given below

string path="C:\\Logger\\"+DateTime.Now.Date.ToString()+".txt";

    public void CreateDirectory()
    {
        if(!File.Exists(path))
        {
            File.Create(path);
        }
    }

any solutions????

Upvotes: 2

Views: 13165

Answers (2)

Mike Perrenoud
Mike Perrenoud

Reputation: 67898

You're going to have to format the date:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt";

because the operating system isn't going to accept something like this:

C:\Logger\07/27/2013.txt

Now, for future reference, consider using Path.Combine to build your paths:

var path = Path.Combine("C:\\Logger",
    DateTime.Now.Date.ToString("yyyy_MM_dd"),
    ".txt");

You won't have to determine when to provide back slashes and when not to. If there isn't one, it will be appended for you.

Finally, you may experience problems if the directory doesn't exist. Something you can do to mitigate that is this:

var path = ...
var dir = Path.GetDirectoryName(path);

if (!Directory.Exists(dir))
{
    Directory.Create(dir);
}

But even then, you can run into permissions issues during runtime.

Upvotes: 6

Adel Khayata
Adel Khayata

Reputation: 2836

Check that the result of this: DateTime.Now.Date.ToString() is accepted by the operating system.

Upvotes: 1

Related Questions