本文整理汇总了C#中IDirectory.Delete方法的典型用法代码示例。如果您正苦于以下问题:C# IDirectory.Delete方法的具体用法?C# IDirectory.Delete怎么用?C# IDirectory.Delete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDirectory
的用法示例。
在下文中一共展示了IDirectory.Delete方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessDirectory
static void ProcessDirectory(IDirectory Directory)
{
if (Directory.Empty)
{
System.Console.WriteLine("{0} is empty", Directory);
Directory.Delete();
}
}
示例2: CollapseDirectory
static void CollapseDirectory(IDirectory DestinationDirectory, IDirectory SubDir)
{
if (SubDir == DestinationDirectory)
{
return;
}
foreach (IFile File in SubDir.Files)
{
File.MoveTo(DestinationDirectory);
}
SubDir.Delete();
}
示例3: Directory
public void Directory(IDirectory sdir, IDirectory ddir)
{
if (ddir == null || sdir == null) return;
sdir.Source = ddir.Source = sdir;
sdir.Destination = ddir.Destination = ddir;
int con;
if (sdir is LocalDirectory && ddir is LocalDirectory) con = 1;
else {
con = Math.Max(FtpConnections.Count(true, sdir.Url), FtpConnections.Count(false, ddir.Url));
if (ddir is FtpDirectory) {
((FtpDirectory)ddir).TransferProgress = true;
} else if (sdir is FtpDirectory) {
((FtpDirectory)sdir).TransferProgress = true;
}
}
if (con == 0) con = 1;
var list = sdir.List().Where(file => !Silversite.Services.Paths.Match(ExcludePatterns, file.RelativePath)).ToList();
var dlist = ddir.List();
//ddir.CreateDirectory(null);
Parallel.ForEach<FileOrDirectory>(list, new ParallelOptions { MaxDegreeOfParallelism = con },
(src) => {
FileOrDirectory dest = null;
lock(dlist) { if (dlist.Contains(src.Name)) dest = dlist[src.Name]; }
if (dest != null && dest.Class != src.Class && (src.Changed > dest.Changed || Mode == Silversite.Services.Sync.Mode.Clone)) {
ddir.Delete(dest);
dest = null;
}
if (src.Class == ObjectClass.File) { // src is a file
if (dest == null
|| ((Mode == Silversite.Services.Sync.Mode.Update || Mode == Silversite.Services.Sync.Mode.Add) && src.Changed > dest.Changed)
|| (Mode == Silversite.Services.Sync.Mode.Clone && (src.Changed > dest.Changed + dt))) {
var s = sdir.ReadFile(src);
if (s != null) {
using (s) {
ddir.WriteFile(s, src);
}
}
}
} else { // src is a directory
if (dest == null) Directory((IDirectory)src, ddir.CreateDirectory(src));
else Directory((IDirectory)src, (IDirectory)dest);
}
lock (dlist) { dlist.Remove(src.Name); }
});
if (Mode != Silversite.Services.Sync.Mode.Add) {
foreach (var dest in dlist) ddir.Delete(dest);
}
}
示例4: RecursiveDeleteEmptyDirectories
private void RecursiveDeleteEmptyDirectories(IDirectory dir, bool importfolder)
{
FileSystemResult fr = dir.Populate();
if (fr.IsOk)
{
if (dir.Files.Count > 0)
return;
foreach (IDirectory d in dir.Directories)
RecursiveDeleteEmptyDirectories(d,false);
}
if (importfolder)
return;
fr = dir.Populate();
if (fr.IsOk)
{
if (dir.Files.Count == 0 && dir.Directories.Count == 0)
{
fr = dir.Delete(true);
if (!fr.IsOk)
{
logger.Warn("Unable to DELETE directory: {0} error {1}", dir.FullName, fr?.Error ?? String.Empty);
}
}
}
}