/// <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); }
/// <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); } }