/// <nodoc /> public static Xldb.Proto.AbsolutePath ToAbsolutePath(this AbsolutePath path, PathTable pathTable, NameExpander nameExpander) { return(new Xldb.Proto.AbsolutePath() { Value = path.ToString(pathTable, PathFormat.Windows, nameExpander) }); }
/// <nodoc /> public static Xldb.Proto.AbsolutePath ToAbsolutePath(this AbsolutePath path, PathTable pathTable) { return(new Xldb.Proto.AbsolutePath() { Value = path.ToString(pathTable, PathFormat.HostOs) }); }
/// <summary> /// Adds a file node (and any needed parent directory nodes) at the VFS root relative path /// </summary> public VfsFileNode AddFileNode(string relativePath, VfsFilePlacementData data, string realPath) { var timestamp = DateTime.UtcNow; if (_nodeMap.TryGetValue(relativePath, out var node)) { return((VfsFileNode)node); } else { var parent = GetOrAddDirectoryNode(Path.GetDirectoryName(relativePath), allowAdd: true); var result = _nodeMap.GetOrAdd(relativePath, (parent, timestamp, data), (l_relativePath, l_data) => { return(new VfsFileNode(Path.GetFileName(l_relativePath), l_data.timestamp, l_data.parent, l_data.data, RealPath.Create(PathTable, realPath))); }); node = result.Item.Value; return((VfsFileNode)node); } }
public VfsFileNode(string name, DateTime timestamp, VfsDirectoryNode parent, VfsFilePlacementData data, RealPath realPath) : base(name, timestamp, parent) { Data = data; RealPath = realPath; }