in sources/Google.Solutions.Ssh/FilePermissions.cs [97:149]
public static string ToListFormat(this FilePermissions mode)
{
var s = new char[10];
//
// File type.
//
if (mode.IsDirectory())
{
s[0] = 'd';
}
else if (mode.IsLink())
{
s[0] = 'l';
}
else if (mode.IsCharacterDevice())
{
s[0] = 'c';
}
else if (mode.IsBlockDevice())
{
s[0] = 'b';
}
else if (mode.IsSocket())
{
s[0] = 's';
}
else if (mode.IsFifo())
{
s[0] = 'p';
}
else // Regular
{
s[0] = '-';
}
//
// Permissions.
//
s[1] = mode.HasFlag(FilePermissions.OwnerRead) ? 'r' : '-';
s[2] = mode.HasFlag(FilePermissions.OwnerWrite) ? 'w' : '-';
s[3] = mode.HasFlag(FilePermissions.OwnerExecute) ? 'x' : '-';
s[4] = mode.HasFlag(FilePermissions.GroupRead) ? 'r' : '-';
s[5] = mode.HasFlag(FilePermissions.GroupWrite) ? 'w' : '-';
s[6] = mode.HasFlag(FilePermissions.GroupExecute) ? 'x' : '-';
s[7] = mode.HasFlag(FilePermissions.OtherRead) ? 'r' : '-';
s[8] = mode.HasFlag(FilePermissions.OtherWrite) ? 'w' : '-';
s[9] = mode.HasFlag(FilePermissions.OtherExecute) ? 'x' : '-';
return new string(s);
}