Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
                    }
                }
            }
        }
Пример #3
0
        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);
            }
        }