示例#1
0
        /// <summary>Converts a <see cref="FileAttributeConstant"/> value to <see cref="FileAttributes"/>.</summary>
        /// <param name="value">The value.</param>
        /// <returns>The result.</returns>
        public static FileAttributes ToFileAttributes(this FileAttributeConstant value)
        {
            FileAttributes ret = 0;

            if ((value & FileAttributeConstant._A_SUBDIR) != 0)
            {
                ret |= FileAttributes.Directory;
            }
            if ((value & FileAttributeConstant._A_RDONLY) != 0)
            {
                ret |= FileAttributes.ReadOnly;
            }
            if ((value & FileAttributeConstant._A_HIDDEN) != 0)
            {
                ret |= FileAttributes.Hidden;
            }
            if ((value & FileAttributeConstant._A_SYSTEM) != 0)
            {
                ret |= FileAttributes.System;
            }
            if ((value & FileAttributeConstant._A_ARCH) != 0)
            {
                ret |= FileAttributes.Archive;
            }
            return(ret);
        }
示例#2
0
 /// <summary>Converts a <see cref="FileAttributeConstant"/> value to <see cref="FileShare"/>.</summary>
 /// <param name="value">The value.</param>
 /// <returns>The result.</returns>
 public static FileShare ToFileShare(this FileAttributeConstant value)
 {
     // Note: This is not done in a switch because the order of tests matters.
     if ((FileAttributeConstant._A_RDONLY | FileAttributeConstant._A_NORMAL) == (value & (FileAttributeConstant._A_RDONLY | FileAttributeConstant._A_NORMAL)))
     {
         return(FileShare.ReadWrite);
     }
     else if (0 != (value & FileAttributeConstant._A_RDONLY))
     {
         return(FileShare.Read);
     }
     else if (0 != (value & FileAttributeConstant._A_NORMAL))
     {
         return(FileShare.Write);
     }
     else
     {
         return(FileShare.Read);
     }
 }