public static void DeleteDirectory(string name) { var directoryExists = PlatformDetection.IsWindows ? LongPathDisk.DirectoryExists(name) : Directory.Exists(name); if (!directoryExists) { return; } try { Log.Event(IOEvent.RmDir, name); if (PlatformDetection.IsWindows) { LongPathDisk.DeleteDirectory(name, true); } else { Directory.Delete(name, true); } } catch (Exception e) { Log.Warning("Failed to delete " + name.Relative() + ": " + e.Message); } }
public static void CreateDirectory(string path) { var dirExists = PlatformDetection.IsWindows ? LongPathDisk.DirectoryExists(path) : Directory.Exists(path); if (path.Length > 1 && !dirExists) { CreateDirectory(Path.GetDirectoryName(path)); Log.Event(IOEvent.MkDir, path); var isHidden = Path.GetFileName(path).StartsWith("."); if (PlatformDetection.IsWindows) { LongPathDisk.CreateDirectory(path); if (isHidden) { LongPathDisk.SetFileAttributes(path, FileAttributes.Hidden); } } else { var di = Directory.CreateDirectory(path); // Hide directory when starts with a dot if (isHidden) { di.Attributes |= FileAttributes.Hidden; } } } }
public static void DeleteFile(string name) { var fileExists = PlatformDetection.IsWindows ? LongPathDisk.FileExists(name) : File.Exists(name); if (!fileExists) { return; } try { Log.Event(IOEvent.Rm, name); if (PlatformDetection.IsWindows) { LongPathDisk.DeleteFile(name); } else { File.Delete(name); } } catch (Exception e) { Log.Warning("Failed to delete " + name.Relative() + ": " + e.Message); } }