0

ディレクトリからのファイルのコレクションがListBoxあり、それらから拡張子を削除する必要があります。それらはすべてm4a形式になるため、少し簡単になります。しかし、私は検索して解決策を見つけることができません。

私はプログラミングに非常に慣れていないので、助けていただければ幸いです。例をリクエストできる場合は、本当に感謝しますlstSong。プレースホルダーの代わりに使用してください。例ではなく、プレースホルダーとは何かについて混乱しています。

要求に応じて、それに書き込むコード:

string[] songspaths = System.IO.Directory.GetFiles(librarypath + "/" + albumpath + "/" + songpath);

List<string> listsongs = new List<string>();

foreach (var f in songspaths)
{
   string songs = f.Split('\\').Last();
   lstSong.Items.Add(songs);
}

このコードがどのように機能するのか正確にはわかりません。私はそれのほとんどを理解していますが、それは私を助けるために友人によって書かれました. それが私が後でそれをするつもりだった理由です。再度、感謝します。

4

1 に答える 1

0

コメントから理解すると、パスや拡張子なしで、ファイルのファイル名のみが必要になります。そのために、Path.GetFileNameWithoutExtensionを使用できます

string[] songspaths = System.IO.Directory.GetFiles(librarypath + "/" + albumpath + "/" + songpath); // Get all the files from the specified directory

List<string> listsongs = new List<string>();

foreach (var f in songspaths)
{
   lstSong.Items.Add(Path.GetFileNameWithoutExtension(f)); // Store the filename without path or extension in the list
}

そして、あなたの友人が書いたコードを説明するには:

string songs = f.Split('\\').Last();

string.Splitメソッドは、指定された文字で区切られた部分文字列の配列に文字列を分割します。この場合、それは (エスケープされた) バックスラッシュです。.Last()は、配列の最後の要素を返します。

于 2013-07-25T10:12:22.020 に答える