2013-04-12 50 views
10

Làm cách nào để tôi có thể thêm tất cả các vị trí thư viện vào Nhạc của tôi?Nhận tất cả các thư mục trong Thư viện Explorer

Đối với ví dụ này, tôi đã thêm các thư mục này đến thư viện:

E:\My Music 
E:\Mp3 

tôi đã cố gắng:

Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); 

Nhưng nó sẽ trả về:

C:\Users\MyUser\Music 

+0

Bạn chỉ có thể thêm từng thư mục một cách thủ công nếu chỉ có hai thư mục tồn tại? –

+1

Tôi có rất nhiều thư mục để thêm vào vị trí thư viện của tôi để thêm nó vào một thư viện không phải là một lựa chọn cho tôi .. :) –

+2

Bạn đã cắt bỏ công việc của mình, nhưng đây là một ví dụ tuyệt vời về cách thực hiện. http://www.codeproject.com/Articles/143038/Parsing-Windows-7-Libraries-Without-NET-4-or-the-W –

Trả lời

1

Mọi thư viện được thêm vào Trình phát đa phương tiện sẽ kết thúc trong thư mục AppData.

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Libraries\Music.library-ms" 

Có thể điều này sẽ hữu ích.

0

tôi đã làm một cái gì đó tương tự và posted a full solution with code using Windows API Code Pack ở câu hỏi này StackOverflow khác. Trong trường hợp của bạn, bạn sẽ tìm thấy những mã mà nói:

 ICollection<IKnownFolder> allSpecialFolders = Microsoft.WindowsAPICodePack.Shell.KnownFolders.All; 

Và sau đó lặp qua các thư mục này để tìm một trong đó phù hợp với nhu cầu của bạn:

string fpath = ""; 
    // Iterate over each folder and find the one we want 
    foreach (var folder in allSpecialFolders) 
    { 
     if (folder.ParsingName == foldername) 
     { 
      // We now have access to the xml path 
      fpath = folder.Path; 
     } 
    } 

    if (fpath == "") 
     return null; 

    var intFolders = GetLibraryInternalFolders(fpath); 

    return intFolders.Folders.ToList(); 

Và sau đó sử dụng GetLibraryInternalFolders() chức năng để trả lại nhiều thư mục bên trong đó. Dù sao, hãy kiểm tra giải pháp toàn mã của tôi ở câu hỏi khác.

Các vấn đề liên quan