Có lẽ ai đó quan tâm đến một phương pháp C# để giải quyết tất cả các liên kết tượng trưng thư mục trong một thư mục tương tự như Directory.GetDirectories(). Để liệt kê các liên kết hoặc các liên kết tệp, chỉ cần thay đổi regex.
static IEnumerable<Symlink> GetAllSymLinks(string workingdir)
{
Process converter = new Process();
converter.StartInfo = new ProcessStartInfo("cmd", "/c dir /Al") { RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true, WorkingDirectory = workingdir };
string output = "";
converter.OutputDataReceived += (sender, e) =>
{
output += e.Data + "\r\n";
};
converter.Start();
converter.BeginOutputReadLine();
converter.WaitForExit();
Regex regex = new Regex(@"\n.*\<SYMLINKD\>\s(.*)\s\[(.*)\]\r");
var matches = regex.Matches(output);
foreach (Match match in matches)
{
var name = match.Groups[1].Value.Trim();
var target = match.Groups[2].Value.Trim();
Console.WriteLine("Symlink: " + name + " --> " + target);
yield return new Symlink() { Name = name, Target = target };
}
}
class Symlink
{
public string Name { get; set; }
public string Target { get; set; }
}
hoặc nếu có thể làm cách nào để tôi theo dõi liên kết trong perl –
Thật lạ khi có thư mục có tên mytextfile.txt; bạn có chắc chắn bạn muốn sử dụng tùy chọn/D không? –
Dù sao, lệnh "dir" hiển thị đích của liên kết tượng trưng theo mặc định. –