2012-04-17 29 views
13

Nói rằng tôi thiết lập một liên kết tượng trưng:cửa sổ biểu tượng liên kết mục tiêu

mklink /D C:\root\Public\mytextfile.txt C:\root\Public\myothertextfile.txt 

là có một cách để xem những gì là mục tiêu của myothertextfile.txt đang sử dụng các dòng lệnh?

+0

hoặc nếu có thể làm cách nào để tôi theo dõi liên kết trong perl –

+5

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? –

+3

Dù sao, lệnh "dir" hiển thị đích của liên kết tượng trưng theo mặc định. –

Trả lời

12

Như Harry Johnston nói dir lệnh cho thấy mục tiêu của liên kết tượng trưng

2014/07/31 11:22 <DIR>   libs 
2014/08/01 13:53    4,997 mobile.iml 
2014/07/31 11:22    689 proguard-rules.pro 
2014/09/28 10:54 <JUNCTION>  res [\??\C:\Users\_____\mobile\src\main\res] 
+2

Đó thực sự là một điểm giao nhau, không phải là một liên kết tượng trưng, ​​nhưng một danh sách thư mục cho một liên kết tượng trưng trông rất giống nhau. –

+1

Khi sử dụng git bash, 'dir' không có sẵn, nhưng bạn có thể viết thay vì' cmd // C dir' –

1

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; } 
} 
Các vấn đề liên quan