Im working on compact framework 3.5. I can delete files by using File.Delete()
and can delete directories by using my method.
Here is the problem : I can call only File.Delete()
methods or my directory deleting method (which name is DD). They both works but not work together. Here is my code :
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Reset_Client
{
static class Program
{
static void Main()
{
string path = @"\Storage Card\deneme\";
File.Delete(path + "Agentry.ini");
File.Delete(path + "Agentry.app");
File.Delete(path + "Agentry.usr");
//DF(path);
DD(path);
MessageBox.Show("Cihaz resetlendi!");
}
public static void DD(string mainPath)
{
try
{
DeleteDirectory(mainPath + "CRM");
DeleteDirectory(mainPath + "BHTS");
DeleteDirectory(mainPath + "IMAGES");
DeleteDirectory(mainPath + "STYLES");
DeleteDirectory(mainPath + "TABLES");
DeleteDirectory(mainPath + "LOG");
}
catch (IOException e)
{
DD(mainPath);
}
}
//public static void DF(string mainPath)
//{
// try
// {
// DeleteFile(mainPath + "Agentry.ini");
// DeleteFile(mainPath + "Agentry.app");
// DeleteFile(mainPath + "Agentry.usr");
// }
// catch (IOException e)
// {
// DF(mainPath);
// }
//}
public static void DeleteDirectory(string target_dir)
{
FileInfo fileInfo = new FileInfo(target_dir);
FileAttributes attributes = fileInfo.Attributes;
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
// set the attributes to nonreadonly
fileInfo.Attributes &= ~FileAttributes.ReadOnly;
}
string[] files = Directory.GetFiles(target_dir);
string[] dirs = Directory.GetDirectories(target_dir);
foreach (string file in files)
{
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Directory.Delete(target_dir, false);
}
public static void DeleteFile(string target_dir)
{
FileInfo fileInfo = new FileInfo(target_dir);
FileAttributes attributes = fileInfo.Attributes;
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
// set the attributes to nonreadonly
fileInfo.Attributes &= ~FileAttributes.ReadOnly;
}
}
}
}