Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 3
1

Сохранение плейлиста в XML файл

19.11.2012, 21:06. Показов 4953. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, сохранить плейлист в xml файл на c#.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 21:06
Ответы с готовыми решениями:

Сделать сохранение плейлиста в файл
Приветствую. Подскажите, как сделать сохранение плейлиста в файл, чтобы потом его можно было...

Парсинг плейлиста формата M3U. Несколько разных вариантов плейлиста
Есть такой формат m3u По крайней мере знаю, что этот формат создаёт WinAmp и вроде медиаплеер. Я...

Сохранение XML в текстовый файл.
Хочу сохранить XML-файл построчно в текстовый, типа .INI . Что можете посоветовать? Или по...

Сохранение данных из таблицы в xml-файл
Здравствуйте. При попытке сохранить данные из dataGriedView в xml-файл при помощи XmlWriter,...

27
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
19.11.2012, 21:52 2
Покажи код плейлиста.

Добавлено через 14 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.IO;
using System.Xml.Serialization;
 
namespace Wpf_TimeRandomizer
{
    public class AppSettings
    {
        public AppSettings()
        {
            MinutesMultipleOfFive = false;
        }
 
        public bool MinutesMultipleOfFive { get; set; }
 
        /// <summary>
        /// Сохранить экземпляр класса настроек приложения
        /// </summary>
        /// <param name="settings">Экземпляр класса для сохранения</param>
        /// <param name="fileName">Путь к файлу, в который будут сохранены настройки</param>
        public static void Save(AppSettings settings, String fileName)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(AppSettings));
            using (FileStream fs = new FileStream(fileName, FileMode.Create))
            using (StreamWriter streamWriter = new StreamWriter(fs))
            {
                xmlSerializer.Serialize(streamWriter, settings);
            }
        }
 
        /// <summary>
        /// Загрузить настройки из файла
        /// </summary>
        /// <param name="fileName">Путь к файлу</param>
        /// <returns>Экземпляр класса настроек</returns>
        public static AppSettings Load(String fileName)
        {
            try
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(AppSettings));
                using (FileStream fs = new FileStream(fileName, FileMode.Open))
                using (StreamReader streamReader = new StreamReader(fs))
                {
                    return (AppSettings)xmlSerializer.Deserialize(streamReader);
                }
            }
            catch
            {
                if (File.Exists(fileName))
                    File.Delete(fileName);
            }
            return null;
        }
    }
}
1
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
28.01.2014, 13:18 3
А как тут сделать сохранение плейлистов в XML? Код:
C#
1
2
List<AudioFile> PlayList = new List<AudioFile>(); 
        Audio CurrentSong=null;
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.InitialDirectory = Environment.SpecialFolder.MyMusic.ToString();
            dialog.Filter = "mp3 files|*.mp3|All files (*.*)|*.*";
            dialog.FilterIndex = 1;
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                Audio newAudio = new Audio(dialog.FileName);
                System.IO.FileInfo file = new System.IO.FileInfo(dialog.FileName);
                long size = file.Length;
                AudioFile newFile = new AudioFile(dialog.FileName, Path.GetFileNameWithoutExtension(dialog.FileName), newAudio.Duration, size);
                listBox1.Items.Add(Path.GetFileNameWithoutExtension(dialog.FileName));
                PlayList.Add(newFile);//додавання в плейліст
                listBox1.SelectedIndex = listBox1.Items.Count-1;
            }
        }
Помогите пожалуйста, очень нужно.

Добавлено через 13 часов 0 минут
очень плохо разбираюсь в Xml(
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
28.01.2014, 13:52 4
имхо, нечто похожее на .m3u можно сделать http://ru.wikipedia.org/wiki/M3U
xml даже и не нужен
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.01.2014, 13:55 5
Я утром писал пример и вырубился сетевой фильтр, к которому был подключен помимо компа ещё и обогреватель. Увы, пришлось бежать на работу. После работы, если никто не поможет, постараюсь скинуть пример.

Добавлено через 1 минуту
Я писал парсер плейлистов, кстати. Где-то тут есть код на форуме
0
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
28.01.2014, 16:05 6
Хорошо, буду ждать пример
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
28.01.2014, 16:16 7
taeas1995, Парсинг плейлиста формата M3U. Несколько разных вариантов плейлиста
1
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
28.01.2014, 17:42 8
Спасибо, но я плохо в этом разбираюсь. Буду ждать пример от Casper-SC.
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
28.01.2014, 17:48 9
гг хоть бы потрудился по ссылке перейти
1
Петррр
28.01.2014, 17:49
  #10

Не по теме:

valera_21, я настолько был ошеломлен ответом ТС, что решил просто промолчать.

0
valera_21
28.01.2014, 17:50
  #11

Не по теме:

Петррр, да уж, такая реакция в текущей ситуации вполне оправдана :)

0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
28.01.2014, 17:51 12
Цитата Сообщение от taeas1995 Посмотреть сообщение
Спасибо, но я плохо в этом разбираюсь. Буду ждать пример от Casper-SC.
Зачем ждать, когда есть гугл? Запрос Casper-SC плейлист C# site:cyberforum.ru выдает ту тему на первой странице.
Вот она - Парсинг плейлиста формата M3U. Несколько разных вариантов плейлиста
0
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
28.01.2014, 18:00 13
Мне нужно, чтобы сохранился файл (в xml или даже M3U) - и в нем был путь к этим mp3 файлам. И потом я смог открыть этот файл и плейлист добавил снова эти mp3.

Добавлено через 1 минуту
но я не могу разобраться, как это сделать. Можете помочь?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
28.01.2014, 18:01 14
taeas1995, господин, все рады, что вы четко можете описать свои проблемы, но они все тривиальны и решаются двухминутным гуглением.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
29.01.2014, 00:21 15
Сериализуемый класс должен иметь конструктор без параметров, паблик свойства, данные из которых сохраняются и загружаются. Свойства должны быть { get; set; }.

AudioFile.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
 
namespace ConsApp_Data
{
    [Serializable]
    public class AudioFile
    {
        public AudioFile()
            : this(string.Empty)
        {
        }
 
        public AudioFile(string name)
        {
            Name = name;
        }
 
        public string Name { get; set; }
    }
}
DataSerializer.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
 
namespace ConsApp_Data
{
    public static class DataSerializer<T>
    {
        /// <summary>
        /// Сохранить данные
        /// </summary>
        /// <param name="data">Список экземпляров заданного типа для сохранения</param>
        /// <param name="fileName">Путь к файлу, в который будут сохранены данные</param>
        public static void Save(List<T> data, string fileName)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<T>));
            using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
            using (StreamWriter streamWriter = new StreamWriter(fs))
            {
                xmlSerializer.Serialize(streamWriter, data);
            }
        }
 
        /// <summary>
        /// Загрузить данные из файла
        /// </summary>
        /// <param name="fileName">Путь к файлу</param>
        /// <returns>Список экземпляров заданного типа</returns>
        public static List<T> Load(string fileName)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<T>));
            using (FileStream fs = new FileStream(fileName, FileMode.Open))
            using (StreamReader streamReader = new StreamReader(fs))
            {
                return (List<T>)xmlSerializer.Deserialize(streamReader);
            }
        }
    }
}
Program.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsApp_Data
{
    class Program
    {
        static void Main(string[] args)
        {
            List<AudioFile> data = new List<AudioFile>()
                {
                    new AudioFile("Супер мега крутой трек.mp3"),
                    new AudioFile("Мега крутой трек 2.mp3"),
                    new AudioFile("Крутой трек 3.mp3")
                };
 
            string file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Плейлист.xml");
 
            DataSerializer<AudioFile>.Save(data, file);
            data = null; //для большей наглядности
 
            data = DataSerializer<AudioFile>.Load(file);
            Console.WriteLine("Выводим загруженные данные на экран:");
            foreach (AudioFile audioFile in data)
            {
                Console.WriteLine(audioFile.Name);
            }
 
            Console.ReadKey();
        }
    }
}
Добавлено через 2 минуты
Данные после сериализации в данном примере кода:
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfAudioFile xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <AudioFile>
    <Name>Супер мега крутой трек.mp3</Name>
  </AudioFile>
  <AudioFile>
    <Name>Мега крутой трек 2.mp3</Name>
  </AudioFile>
  <AudioFile>
    <Name>Крутой трек 3.mp3</Name>
  </AudioFile>
</ArrayOfAudioFile>
0
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
31.01.2014, 19:34 16
Сделал сохранение и открытие. Вот код:
сохранение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.Title = "Save playlist";
            save.Filter = "(*.m3u)|*.m3u";
            save.RestoreDirectory = true;
            if (save.ShowDialog() == DialogResult.OK)
            {
                if (listBox1.Items != null)
                {
                    File.AppendAllText(save.FileName, "#EXTM3U \r\n", Encoding.GetEncoding(1251));
                    for (int i = 0; i < listBox1.Items.Count; i++)
                    {
                        File.AppendAllText(save.FileName, listBox1.Items[i].ToString() + "\r\n", Encoding.Default);
                    }
                }
            }
        }
открытие:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void openToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();
            open.Title = "Open playlist";
            open.Filter = "(*.m3u)|*.m3u";
            open.RestoreDirectory = true;
            if (open.ShowDialog() == DialogResult.OK)
            {
                listBox1.Items.Clear();
                string line;
                StreamReader file = new StreamReader(open.FileName);
                while ((line = file.ReadLine()) != null)
                {
                    if (line[0] != '#') listBox1.Items.Add(line);
                }
            }
        }
Но после перезапуска программы, я открываю файл .M3U и музыку я не могу воспроизвести. Можете отредактировать код, чтобы работало?
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
31.01.2014, 19:38 17
Цитата Сообщение от taeas1995 Посмотреть сообщение
Но после перезапуска программы, я открываю файл .M3U и музыку я не могу воспроизвести. Можете отредактировать код, чтобы работало?
Скинь проект с воспроизведением проблемы, чтобы можно было скачать, запустить у себя и посмотреть что к чему.
Цитата Сообщение от taeas1995 Посмотреть сообщение
и музыку я не могу воспроизвести
То есть проблема не с загрузкой плейлиста? Короче, выкладывай проект.
0
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
31.01.2014, 20:06 18
Проект:
Вложения
Тип файла: rar MediaPlayer.rar (1.09 Мб, 28 просмотров)
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
31.01.2014, 20:55 19
У тебя там полный хаос. Проще с нуля написать, чем там голову ломать. Намутил жесть просто. Повсюду дублирование кода, ничего толком нормально не именовано, сиди гадай, что за button1 или toolStrip2 и т.д.

Добавлено через 1 минуту
Сразу чуть не по теме, но это, нужно превратить в код, что выложу я, или забудь о сериализации, как минимум, да и не правильно паблик поля делать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    class AudioFile
    {
        public string Path;
        public string Name;
        public double Duration;
        public double Size;
 
        public AudioFile(string path, string name, double duration, double size) 
        {
            Path = path;
            Name = name;
            Duration = duration;
            Size = size;
        }
        public AudioFile() { }
    }
Должно быть так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public class AudioFile
    {
        public AudioFile(string path, string name, double duration, double size)
        {
            Path = path;
            Name = name;
            Duration = duration;
            Size = size;
        }
 
        public AudioFile()
        {
        }
 
        public string Path { get; set; }
        public string Name { get; set; }
        public double Duration { get; set; }
        public double Size { get; set; }
    }
Добавлено через 27 минут
Короче, я чуть подправил, дальше не хватило терпения...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.AudioVideoPlayback;
using System.IO;
 
namespace MediaPlayer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
        }
 
 
        //------------------------ГЛОБАЛЬНІ ЗМІННІ-------------------------//
        List<AudioFile> PlayList = new List<AudioFile>(); //поточний список файлів(плейліст)
        string[] paths, files;
        //-----------------------------------------------------------------//
 
        private void toolStripButton7_Click(object sender, EventArgs e)
        {
            Form3 f1 = new Form3();
            f1.Show();
        }
 
        private void toolStripButton8_Click(object sender, EventArgs e)
        {
            Form2 f1 = new Form2();
            f1.Show();
        }
 
        private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //процедура відкриття файлу та додавання його в плейліст
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.InitialDirectory = Environment.SpecialFolder.MyMusic.ToString();
            dialog.Filter = "mp3 files|*.mp3|All files (*.*)|*.*";
            dialog.FilterIndex = 1;
            dialog.Multiselect = true;
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                Audio newAudio = new Audio(dialog.FileName);
                System.IO.FileInfo file = new System.IO.FileInfo(dialog.FileName);
                long size = file.Length;
                AudioFile newFile = new AudioFile(Path.GetDirectoryName(dialog.FileName), dialog.FileName, newAudio.Duration, size);
                //listBox1.Items.Add(Path.GetFileNameWithoutExtension(dialog.FileName));//додавання в лістбокс
                PlayList.Add(newFile);//додавання в плейліст
                //переведення курсору на новий елемент
 
                files = dialog.SafeFileNames;
                paths = dialog.FileNames;
                listBox1.Items.Clear();
                for (int i = 0; i < files.Length; i++)
                {
                    listBox1.Items.Add((i + 1).ToString() + " . " + files[i]);
                }
                listBox1.SelectedIndex = listBox1.Items.Count - 1;
            }
        }
 
        private void Add_Click(object sender, EventArgs e)
        {
            /*   var dlg = new Microsoft.Win32.OpenFileDialog
               {
                   DefaultExt = ".mp3",
                   Multiselect = true,
                   Filter = "Music Files|*.mp3|All Files (*.*)|*.*",
                   CheckFileExists = true
               };
 
               if (dlg.ShowDialog(this) == true)
               {
                   foreach (String file in dlg.FullName)
                   {
                       var fullName = dlg.FullName;
 
                       media.Source = new Uri(fullName);
 
                       listBox1.Items.Add(media.Source);
                   }
               } */
        }
        private void exitToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
 
        private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (listBox1.SelectedIndex >= 0)
            {
                string file = PlayList[listBox1.SelectedIndex].Name;
                axWindowsMediaPlayer1.URL = file;
            }
 
        }
 
        private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {
 
        }
 
        private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
            /*  string delrlm = listBox1.SelectedIndex;
              if (MessageBox.Show("Вы точно хотите удалить " + delrlm + "?", "Info", MessageBoxButtons.YesNo) == DialogResult.Yes)
              {
                  listBox1.Items.Remove(delrlm);
              }*/
 
            axWindowsMediaPlayer1.URL = "";
            listBox1.Items.Remove(listBox1.SelectedItem);
        }
 
        private void nextToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
 
        }
 
        private void backTrekToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % listBox1.Items.Count;
            if (listBox1.SelectedIndex >= 0)
            {
                axWindowsMediaPlayer1.URL = paths[listBox1.SelectedIndex];
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.SelectedIndex = (listBox1.SelectedIndex - 1) % listBox1.Items.Count;
            if (listBox1.SelectedIndex >= 0)
            {
                axWindowsMediaPlayer1.URL = paths[listBox1.SelectedIndex];
            }
        }
 
 
        private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.Title = "Save playlist";
            save.Filter = "(*.m3u)|*.m3u";
            save.RestoreDirectory = true;
            if (save.ShowDialog() == DialogResult.OK)
            {
                var files = PlayList.Select(audio => audio.Path);
 
                SavePlaylist(save.FileName, files);
            }
        }
 
        private void SavePlaylist(string playlistFile, IEnumerable<string> musicFiles)
        {
            using (StreamWriter sw = new StreamWriter(playlistFile))
            {
                sw.WriteLine("#EXTM3U");
                foreach (string musicFile in musicFiles)
                {
                    sw.WriteLine(musicFile);
                }
            }
        }
 
        private void openToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();
            open.Title = "Open playlist";
            open.Filter = "(*.m3u)|*.m3u";
            open.RestoreDirectory = true;
            if (open.ShowDialog() == DialogResult.OK)
            {
                listBox1.Items.Clear();
                string line;
                StreamReader file = new StreamReader(open.FileName);
                while ((line = file.ReadLine()) != null)
                {
                    if (line[0] != '#')
                        listBox1.Items.Add(line);
                }
            }
        }
 
        private void openDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
            FolderBrowserDialog dialog = new FolderBrowserDialog();
 
            if (dialog.ShowDialog() == DialogResult.OK)
                foreach (string fileName in Directory.EnumerateFiles(dialog.SelectedPath, "*.mp3"))
                {
                    //Audio newAudio = new Audio(fileName);
                    FileInfo file = new FileInfo(fileName);
                    long size = file.Length;
                    AudioFile newFile = new AudioFile(file.Name, fileName, 0d/*newAudio.Duration*/, size);
                    //listBox1.Items.Add(Path.GetFileNameWithoutExtension(dialog.FileName));//додавання в лістбокс
                    PlayList.Add(newFile);//додавання в плейліст
 
                }
 
            files = new string[PlayList.Count];
            int i;
            for (i = 0; i < PlayList.Count; i++)
            {
                files = PlayList.Select((audioFile) => audioFile.Name).ToArray();
                paths = PlayList.Select((audioFile) => audioFile.Path).ToArray();
            }
 
            listBox1.Items.Clear();
            for (i = 0; i < files.Length; i++)
            {
                listBox1.Items.Add((i + 1).ToString() + " . " + files[i]);
            }
            listBox1.SelectedIndex = listBox1.Items.Count - 1;
        }
 
        private void exitToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
        }
    }
}
1
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
31.01.2014, 22:39 20
Я когда открываю этот сохраненный плейлист и хочу воспроизвести музыку то вылетает приложение и пишет ошибку: Index was out of range. Must be non-negative and less than the size of the collection. Строка 107:
C#
1
string file = PlayList[listBox1.SelectedIndex].Name;.
Можете исправить пожалуйста?
0
31.01.2014, 22:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2014, 22:39
Помогаю со студенческими работами здесь

Сохранение данных из DataGridView в файл XML
Доброе утро бойцы.... Сохраняю я значится данные из DATAgrid в файл txt и xml.... с тхт всё...

Сохранение объектов класса в Xml файл
нужно сохранить значение классов в xml файл описание одного из классов class AnimalTip { ...

Сохранение плейлиста
if (sourceFileSaveFileDialog.ShowDialog() == DialogResult.OK) { try ...

Сохранение плейлиста
Доброго времени суток! Я решил написать аудио проигрыватель (знаю, изобретаю велосипед) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru