1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| static void ScheduleDelete(string path)
{
ScheduleRename(path, null);
}
static void ScheduleRename(string path, string newPath)
{
if (string.IsNullOrEmpty(path))
throw new ArgumentNullException("path");
path = @"\??\" + path;
if (!string.IsNullOrEmpty(newPath))
newPath = @"\??\" + newPath;
else
newPath = string.Empty;
using (var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager", true))
{
var strings = ((string[])key.GetValue("PendingFileRenameOperations")).ToList();
if (strings.Count % 2 != 0) strings.Add(string.Empty);
strings.Add(path);
strings.Add(newPath);
key.SetValue("PendingFileRenameOperations", strings.ToArray());
}
} |
Partager