Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 9
1

Чтение и запись файла

26.05.2011, 00:15. Показов 2130. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, мне необходимо открывать любой файл из диалогового меню, загружать, разбивать побайтово и обратно записать. Код есть, но записанный файл не открывается, пишет что он поврежден.
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
// открытие и запись в массив байт
 if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                System.IO.FileStream fs1 = new System.IO.FileStream(openFileDialog1.FileName, System.IO.FileMode.Open);
                MyFile = new byte[fs1.Length-1 ];
                for (i = 0; i < fs1.Length-1 ; i++)
                {
                    fs1.Read((byte[])MyFile, 0, (int)fs1.Length-1 );
                }
                fs1.Close();
            }
 
 
//запись в файл
 
 
                try
                {
                    System.IO.FileStream fs = new System.IO.FileStream("d:\\aaa", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
                    fs.Seek(0, System.IO.SeekOrigin.Begin);
                    fs.Write(file, 0, MyFile.Length); // запись массива байт
                    fs.Dispose(); // освобождаем ресурсы
                }
                catch {Exception exc;}


Подскажите что нужно сделать чтобы файл полность соответствовал тому который открывали[CSHARP][/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2011, 00:15
Ответы с готовыми решениями:

Запись и чтение из файла
Доброго времени суток! Задание было такого: Создать экспертную систему &quot;Где поужинать?&quot;....

Чтение-запись файла в режиме многопоточности
Всем доброго времени суток! Никогда не имел дела с потоками, а тут вот потребовалось столкнутся....

Не получается чтение/запись ячеек файла Excel
В программе просто открывается файл из текущей дериктории и я пытаюсь вывести на консоль значение...

Чтение и запись любого файла используя только HEX
В общем хочу написать программу, которая будет читать любой файл в виде hex и дописывать/заменять...

3
167 / 96 / 23
Регистрация: 13.03.2011
Сообщений: 402
26.05.2011, 08:27 2
Лучше использовать ReadByte()
Вместо Dispose() лучше Close()
0
13 / 13 / 2
Регистрация: 10.01.2010
Сообщений: 34
26.05.2011, 10:15 3
C#
1
2
3
4
5
6
7
8
9
byte[] data = null;
using(var fs = new FileStream("sourse.dat", FileMode.Open, FileAccess.Read))
{
    data = new BinaryReader(fs).ReadBytes((int)fs.Length);
}
using (var fs = new FileStream("dest.dat", FileMode.Create, FileAccess.Write))
{
    new BinaryWriter(fs).Write(data);
}
Вместо Dispose() лучше Close()
Dispose = Close тождественно (посмотрите IL код)

И лучше использовать конструкцию using
0
Заблокирован
26.05.2011, 10:21 4
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
private void button1_Click(object sender, EventArgs e)
        {
            System.IO.FileInfo fi; 
            OpenFileDialog Fd = new OpenFileDialog();            
            // Выбираем первоначальную папку.
            Fd.InitialDirectory = @"C:\";
 
           // Fd.Filter = "муз.файлы (*.mp3 *.wma,*.wav,*.cda)|*.mp3;*.wma;*.wav;*.cda|Все файлы|*.*";
            // Показываем диалог.
            if (Fd.ShowDialog() == DialogResult.OK)
            {
                fi = new System.IO.FileInfo(Fd.FileName);
                System.IO.FileStream fs = new System.IO.FileStream(fi.FullName,
                 System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[] arrfile = new byte[fs.Length];
                fs.Position = 0;
 
                fs.Read(arrfile, 0, arrfile.Length);
                fs.Close();
 
                System.IO.FileStream fs2 = new System.IO.FileStream("d:\\aaa" + fi.Extension, 
                                    System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
                fs2.Write(arrfile, 0, arrfile.Length);
               
            }
            
            
        }
0
26.05.2011, 10:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2011, 10:21
Помогаю со студенческими работами здесь

Загрузка данных из Excel (только чтение из файла) и запись в БД
Загрузка данных из Excel (только чтение из файла) и запись в БД. Вопрос: как проще открыть в...

Чтение и запись файла в базу
Стоит задача: считать файл и записать его в базу данных и обратно, считать файл из базы и записать...

Чтение и запись файла. txt
Всех с подступающим:yahoo: Если коротко: 1)хочу писать в файл слова (думаю с помощью StreamWriter...

Запись и чтение из файла
Подскажите как работать с файлами: Значит такое дело, аналог на delphi такой а в C# КАК ? ...


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

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