I have had some problems earlier which caused my program to crash in all Windows OS because I did not create a new file/directory for my file. Then I have assured that I have created file/folder before initializing ect. Now my program works in Windows XP but it doesn’t work in Windows 7. By saying that it works I mean that it creates a file/folder needed for my program. By not working I mean that the file/folder isn’t created in windows 7.
Could this code be the cause of the crash under Windows 7? If so, how could I fix it?
private static string dir = Environment.GetFolderPath
(Environment.SpecialFolder.ProgramFiles) + @"\folder\";
private static string file = dir + @"\Settings.txt";
private string text;
public void CheckFileStatus()
{
if (!Directory.Exists(dir))
{
DirectoryInfo directory = Directory.CreateDirectory(dir);
}
if (!File.Exists(file))
{
using (FileStream fileStream = File.Create(file))
{
}
}
}
The program files directory in Windows 7 can only be written to with elevated privileges. Are you running your code as an administrator? It’s also bad practice to write to the program files folder. You should be using the %appdata% folder.
Take a look here to see the various special folders. You will likely want to use either
System.Environment.SpecialFolder.ApplicationDataorSystem.Environment.SpecialFolder.CommonApplicationData. This will allow you to write data without needing elevated privileges.