/** BLOCKING */ public static string OwnerName(UnixFileSystemInfo f) { try { long uid = f.ToStat().st_uid; if (OwnerNameCache.ContainsKey(uid)) { return OwnerNameCache[uid]; } else { try { UnixUserInfo uf = f.OwnerUser; return OwnerNameCache[uf.UserId] = uf.UserName; } catch (System.ArgumentException) { return OwnerNameCache[uid] = uid.ToString(); } } } catch (System.InvalidOperationException) { return ""; } }
/** BLOCKING */ public static string GroupName(UnixFileSystemInfo f) { try { long gid = f.ToStat().st_gid; if (GroupNameCache.ContainsKey(gid)) { return GroupNameCache[gid]; } else { try { UnixGroupInfo uf = f.OwnerGroup; return GroupNameCache[uf.GroupId] = uf.GroupName; } catch (System.ArgumentException) { return GroupNameCache[gid] = gid.ToString(); } } } catch (System.InvalidOperationException) { return ""; } }