예제 #1
0
        public static FileAttributes AzureFileNtfsAttributesToLocalAttributes(CloudFileNtfsAttributes cloudFileNtfsAttributes)
        {
            FileAttributes fileAttributes = FileAttributes.Normal;

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.ReadOnly) == CloudFileNtfsAttributes.ReadOnly)
            {
                fileAttributes |= FileAttributes.ReadOnly;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Hidden) == CloudFileNtfsAttributes.Hidden)
            {
                fileAttributes |= FileAttributes.Hidden;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.System) == CloudFileNtfsAttributes.System)
            {
                fileAttributes |= FileAttributes.System;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Directory) == CloudFileNtfsAttributes.Directory)
            {
                fileAttributes |= FileAttributes.Directory;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Archive) == CloudFileNtfsAttributes.Archive)
            {
                fileAttributes |= FileAttributes.Archive;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Temporary) == CloudFileNtfsAttributes.Temporary)
            {
                fileAttributes |= FileAttributes.Temporary;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Offline) == CloudFileNtfsAttributes.Offline)
            {
                fileAttributes |= FileAttributes.Offline;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.NotContentIndexed) == CloudFileNtfsAttributes.NotContentIndexed)
            {
                fileAttributes |= FileAttributes.NotContentIndexed;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.NoScrubData) == CloudFileNtfsAttributes.NoScrubData)
            {
                fileAttributes |= FileAttributes.NoScrubData;
            }

            if ((cloudFileNtfsAttributes & CloudFileNtfsAttributes.Normal) == CloudFileNtfsAttributes.None)
            {
                if (fileAttributes != FileAttributes.Normal)
                {
                    fileAttributes = fileAttributes & (~FileAttributes.Normal);
                }
            }

            return(fileAttributes);
        }
 /// <summary>
 /// Converts a CloudFileNtfsAttributes to a string
 /// </summary>
 /// <param name="attributes"><see cref="CloudFileNtfsAttributes"/></param>
 /// <returns>string</returns>
 internal static string ToString(CloudFileNtfsAttributes attributes)
 {
     return(string.Join("|", directory.Select(r =>
     {
         if (attributes.HasFlag(r.Key))
         {
             return r.Value;
         }
         return null;
     }).Where(r => r != null)));
 }
        private void GenerateDirNodeWithAttributes(
            DirNode parent,
            int dirLevel,
            CloudFileNtfsAttributes smbAttributes)
        {
            FileNode fileNode = new FileNode(DMLibTestBase.FileName + "_0");

            fileNode.SizeInByte    = 1024;
            fileNode.SMBAttributes = smbAttributes;
            parent.AddFileNode(fileNode);

            fileNode               = new FileNode(DMLibTestBase.FileName + "_1");
            fileNode.SizeInByte    = 1024;
            fileNode.SMBAttributes = smbAttributes;
            parent.AddFileNode(fileNode);

            if (dirLevel <= 0)
            {
                return;
            }

            --dirLevel;
            DirNode dirNode = new DirNode(DMLibTestBase.DirName + "_0");

            this.GenerateDirNodeWithAttributes(dirNode, dirLevel, smbAttributes);
            if (smbAttributes == CloudFileNtfsAttributes.Normal)
            {
                dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory;
            }
            else
            {
                dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory | smbAttributes;
            }
            parent.AddDirNode(dirNode);

            dirNode = new DirNode(DMLibTestBase.DirName + "_1");
            this.GenerateDirNodeWithAttributes(dirNode, dirLevel, smbAttributes);
            if (smbAttributes == CloudFileNtfsAttributes.Normal)
            {
                dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory;
            }
            else
            {
                dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory | smbAttributes;
            }
            parent.AddDirNode(dirNode);
        }
예제 #4
0
        public static CloudFileNtfsAttributes LocalAttributesToAzureFileNtfsAttributes(FileAttributes fileAttributes)
        {
            CloudFileNtfsAttributes cloudFileNtfsAttributes = CloudFileNtfsAttributes.None;

            if ((fileAttributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.ReadOnly;
            }

            if ((fileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Hidden;
            }

            if ((fileAttributes & FileAttributes.System) == FileAttributes.System)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.System;
            }

            if ((fileAttributes & FileAttributes.Directory) == FileAttributes.Directory)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Directory;
            }

            if ((fileAttributes & FileAttributes.Archive) == FileAttributes.Archive)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Archive;
            }

            if ((fileAttributes & FileAttributes.Normal) == FileAttributes.Normal)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Normal;
            }

            if ((fileAttributes & FileAttributes.Temporary) == FileAttributes.Temporary)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Temporary;
            }

            if ((fileAttributes & FileAttributes.Offline) == FileAttributes.Offline)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.Offline;
            }

            if ((fileAttributes & FileAttributes.NotContentIndexed) == FileAttributes.NotContentIndexed)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.NotContentIndexed;
            }

            if ((fileAttributes & FileAttributes.NoScrubData) == FileAttributes.NoScrubData)
            {
                cloudFileNtfsAttributes |= CloudFileNtfsAttributes.NoScrubData;
            }

            if (cloudFileNtfsAttributes == CloudFileNtfsAttributes.None)
            {
                cloudFileNtfsAttributes = CloudFileNtfsAttributes.Normal;
            }

            return(cloudFileNtfsAttributes);
        }