2013-04-12 12 views
10

ライブラリの場所をすべてMy Musicに追加するにはどうすればよいですか?この例ではエクスプローラライブラリ内のすべてのディレクトリを取得

は、私がライブラリにこれらのディレクトリを追加しました:

E:\My Music 
E:\Mp3 

私が試した:

Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); 
をしかし、それは返す:

C:\Users\MyUser\Music 

+0

フォルダが2つしかない場合は、手動でディレクトリを1つずつ追加できますか? –

+1

私はライブラリの場所に追加するディレクトリがたくさんあるので、それを1つずつ追加することは私にとってはオプションではありません。:) –

+2

あなたの仕事は分かれていますが、ここではどのように完成したのかの素晴らしい例があります。 http://www.codeproject.com/Articles/143038/Parsing-Windows-7-Libraries-Without-NET-4-or-the-W –

答えて

1

Media Playerに追加されたライブラリはすべてAppDataディレクトリにあります。

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

おそらくこれが役立ちます。

0

私はこの他のStackOverflowの質問に似たとposted a full solution with code using Windows API Code Pack何かをしました。その後、

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

そして、あなたのニーズにマッチする1見つけるために、これらのフォルダを反復:

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(); 

をそして返すためにGetLibraryInternalFolders()機能を使用し、あなたのケースでは、あなたは言うコードを見つけるだろうその中に複数のフォルダがあります。とにかく、私のフルコード解決策を他の質問でチェックしてください。

関連する問題