首页 > 其他 > 详细

位标志

时间:2016-11-24 07:38:51      阅读:260      评论:0      收藏:0      [点我收藏+]
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;
        }
    }

 

位标志

原文:http://www.cnblogs.com/Tan-sir/p/6095768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!