Ik probeer een map en alle bestanden en mappen in die map te verwijderen, ik gebruik de onderstaande code en ik krijg de foutmelding Folder is not empty
, eventuele suggesties over wat ik kan doen?
try
{
var dir = new DirectoryInfo(@FolderPath);
dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
dir.Delete();
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i].Index);
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
Antwoord 1, autoriteit 100%
dir.Delete(true); // true => recursive delete
Antwoord 2, autoriteit 69%
Lees de handleiding:
Directory.Delete-methode (string, boolean)
Directory.Delete(folderPath, true);
Antwoord 3, autoriteit 13%
Probeer:
System.IO.Directory.Delete(path,true)
Hiermee worden alle bestanden en mappen onder “pad” recursief verwijderd, ervan uitgaande dat u hiervoor de machtigingen hebt.
Antwoord 4, autoriteit 3%
Err, hoe zit het met het aanroepen van Directory.Delete(path, true);
?
Antwoord 5, autoriteit 3%
De Directory.Deletemethode heeft een recursieve booleaanse parameter, het zou moeten doen wat je nodig hebt
Antwoord 6, autoriteit 2%
U moet gebruiken:
dir.Delete(true);
om ook de inhoud van die map recursief te verwijderen. Zie MSDN DirectoryInfo.Delete() overbelasting.
Antwoord 7, autoriteit 2%
Probeer dit.
namespace EraseJunkFiles
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo yourRootDir = new DirectoryInfo(@"C:\somedirectory\");
foreach (DirectoryInfo dir in yourRootDir.GetDirectories())
DeleteDirectory(dir.FullName, true);
}
public static void DeleteDirectory(string directoryName, bool checkDirectiryExist)
{
if (Directory.Exists(directoryName))
Directory.Delete(directoryName, true);
else if (checkDirectiryExist)
throw new SystemException("Directory you want to delete is not exist");
}
}
}
Antwoord 8, autoriteit 2%
Voor degenen onder u die de DirectoryNotFoundException tegenkomen, voeg deze controle toe:
if (Directory.Exists(path)) Directory.Delete(path, true);
Antwoord 9
public void Empty(System.IO.DirectoryInfo directory)
{
try
{
logger.DebugFormat("Empty directory {0}", directory.FullName);
foreach (System.IO.FileInfo file in directory.GetFiles()) file.Delete();
foreach (System.IO.DirectoryInfo subDirectory in directory.GetDirectories()) subDirectory.Delete(true);
}
catch (Exception ex)
{
ex.Data.Add("directory", Convert.ToString(directory.FullName, CultureInfo.InvariantCulture));
throw new Exception(string.Format(CultureInfo.InvariantCulture,"Method:{0}", ex.TargetSite), ex);
}
}
Antwoord 10
Probeer dit:
foreach (string files in Directory.GetFiles(SourcePath))
{
FileInfo fileInfo = new FileInfo(files);
fileInfo.Delete(); //delete the files first.
}
Directory.Delete(SourcePath);// delete the directory as it is empty now.