• 位标志


    class Program
        {
            static void Main(string[] args)
            {
                string file = Assembly.GetEntryAssembly().Location;
                FileAttributes attributes = File.GetAttributes(file);
                Console.WriteLine("Is {0} hidden?{1}", file, (attributes & FileAttributes.Hidden) != 0);
                //  File.SetAttributes(file, FileAttributes.ReadOnly | FileAttributes.Hidden);
                Action actions = Action.Read | Action.Delete;//未加Flags输出为5。Flags将把它视为一组位标志,输出Read,Delete
                //Action actions = Action.Read & Action.Delete;
                Console.WriteLine(actions.ToString());
    
                FileAttributes fa = FileAttributes.System;
                fa = fa.Set(FileAttributes.ReadOnly);
                Console.ReadKey();
            }
        }
        //17 & 13 = 10001 & 01101 = 00001 也就是1
        //17 | 13 = 10001 | 01101 = 11101 也就是 29
    
          
            [Flags]
        internal enum Action
        {
            None = 0,
            Read = 0x0001,
            Write = 0x0002,
            ReadWrite = Action.Read | Action.Write,
            Delete = 0x0004,
            Query = 0x0008,
            Sync = 0x0010
        }
    
        internal static class FileAttributesExtensionMethods
        {
            public static Boolean IsSet(this FileAttributes flags, FileAttributes flagToTest)
            {
                    return (flags & flagToTest) == flagToTest;
            }
    
            public static FileAttributes Set(this FileAttributes flags, FileAttributes setFlags)
            {
                return flags | setFlags;
            }
        }
  • 相关阅读:
    上机课前准备
    C# 跨线程访问控件的解决方法
    C# 异步和多线程的区别
    C# BeginInvoke和EndInvoke方法
    C# 委托的回调机制
    C# 什么是委托
    C# WebBrowser的控件使用
    C# 解决WebBrowser.DocumentCompleted事件的多次调用
    平台调用数据类型
    C# 创建快捷方式
  • 原文地址:https://www.cnblogs.com/Tan-sir/p/6095768.html
Copyright © 2020-2023  润新知