Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
1

Прикрепление и хранение файлов в WinForm

20.08.2014, 08:30. Просмотров 1276. Ответов 13
Метки нет (Все метки)

Доброго времени суток. Подскажите в какую сторону копать. Есть форма с описанием, необходимо к этой форме прикрепить документы, что бы они хранились в определенной директории. и при открытии формы эти формы на ней отображались.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2014, 08:30
Ответы с готовыми решениями:

Хранение и защита звуковых файлов
Здравствуйте. Я пишу аудио- записную книгу. В программе нужно будет...

Хранение файлов в DLL
Здраствуйте. Подскажите пожалуйста, возможно ли создать *.dll для основной...

Хранение файлов в FileStream
Привет Всем. Имеем MSSQL 2008, таблица с полем файлстрим. Задача - со...

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

Прикрепление иконок к программе
Скажите пожалуйста, как прикрепить к программе на C# иконки таким образом,...

13
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
20.08.2014, 08:53 2
Цитата Сообщение от damonxx Посмотреть сообщение
эти формы на ней отображались
какие эти?
Цитата Сообщение от damonxx Посмотреть сообщение
Подскажите в какую сторону копать.
Вы вообще не понимаете как сделать, или есть определенные затруднения в чем-то конкретном?
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
20.08.2014, 09:16  [ТС] 3
titans2011, извиняюсь не формы а файлы в форме, по клике на на файлы они либо открывались либо скачивались.
Вообще не понимаю как это осуществить.
0
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
20.08.2014, 11:20 4
Цитата Сообщение от damonxx Посмотреть сообщение
файлы в форме
Опишите как вы себе это представляете?
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
20.08.2014, 11:33  [ТС] 5
есть БД (mssql) где хранится перечень работ с их описанием, в программе отображается через грид. К этим работам прилагаются дополнительные файлы(exel, word. txt....). Так вот я хочу что бы при открытии формы с описанием, внутри этой формы можно было прикрепить дополнительные файлы и потом на этой же форме можно было открыть этот файл.
0
Learx
1045 / 852 / 194
Регистрация: 31.03.2010
Сообщений: 2,486
20.08.2014, 11:41 6
damonxx, 1) System.IO.Directory может дать вам список файлов в определенной директории
Далее для выбранного файла берем FileStream и считываем его
(или, может, иначе. например для чтения фото есть специальный класс Bitmap и его конструктор может принять путь к файлу)
2) Если у вас файлы могут хранится как локально так и на веб-ресурсе, то создаем xml-файл который хранит ссылки и получаем ссылки из него.
структуру файла определить таким образом, чтоб сразу было видно где локальные, а где веб-ресурсы.
как с локальными работать я показал, а для веб-ресурсов используем WebClient
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
23.08.2014, 10:28  [ТС] 7
Learx, приветствую. С открытием файлов разобрался. Подскажи пожалуйста как можно с помощью saveFileDialog сохранить файл в нужную директорию с тем же именем.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void button3_Click(object sender, EventArgs e)
        {
              // выход, если была нажата кнопка Отмена и прочие (кроме ОК)
            if (openFileDialog2.ShowDialog() != DialogResult.OK) return;
            // всё. имя файла теперь хранится в openFileDialog1.FileName
            MessageBox.Show("Выбран файл: " + openFileDialog2.FileNames);
            saveFileDialog1.InitialDirectory = "C:\tmp";
            saveFileDialog1.Filter = "All files|*.*";
            saveFileDialog1.FileName = openFileDialog2.FileName;
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = saveFileDialog1.FileName;
            }
            }
Данный код открывает несколько файлов и потом сохраняет в папку С:\tmp. Но при сохранении он предлагает куда сохранить, как можно это избежать?

Добавлено через 31 минуту
изменил код
C#
1
2
3
4
5
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = saveFileDialog1.FileName;
                System.IO.File.WriteAllText(fileName, openFileDialog2.FileName);            
}
файл сохраняется но только один, как можно сделать что бы все файлы сохранялись?
0
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
23.08.2014, 15:01 8
Цитата Сообщение от damonxx Посмотреть сообщение
файл сохраняется но только один, как можно сделать что бы все файлы сохранялись?
SaveFileDialog сохраняет только один файл. Что бы сделать такой трюк, вам нужно использовать Folder Browser Dialog.
C#
1
2
3
4
5
6
7
8
9
        DialogResult result = folderBrowserDialog1.ShowDialog();
        if( result == DialogResult.OK )
        {
            String folderName = folderBrowserDialog1.SelectedPath;
            foreach (String file in openFileDialog1.FileNames) 
            {
                System.IO.File.WriteAllText(folderName, file);  
            }
        }
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 08:05  [ТС] 9
titans2011, В коде
C#
1
 System.IO.File.WriteAllText(folderName, file);
Вылазит ошибка "Отказано в доступе по пути "\\Ass\общая\тендера\тест"."
Доступ стоит полный для всех, галочка только для чтения убрана.
0
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 09:28 10
Цитата Сообщение от damonxx Посмотреть сообщение
Вылазит ошибка "Отказано в доступе по пути "\\Ass\общая\тендера\тест"."
Ну потому что вы не уточнили, где будете записывать: локально или по сетевому адресу. Отсюда разные функции.
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 09:47  [ТС] 11
titans2011, тоже самое если я сохраняю в C:\\tmp
0
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 11:24 12
Стоп. Ошибочка в коде.
Надо указать путь к файлу а не путь к папке, второй параметр идет текст.
C#
1
System.IO.File.WriteAllText((folderName+"\\"+file), text);
1
damonxx
7 / 7 / 8
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 12:09  [ТС] 13
titans2011,
Запутался, сведу вопрос к простому, как осуществить копирование нескольких файлов с помощью openFileDialog и folderBrowserDialog/
0
titans2011
302 / 263 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 12:23 14
Лучший ответ Сообщение было отмечено damonxx как решение

Решение

text это стринговый параметр. По идеи вы должны были считать файл в стринговую переменную и сохранить по другому пути. Но это путь через "уши". В .Net есть функция по копированию файлов. http://msdn.microsoft.com/ru-ru/library/c6cfw35a(v=vs.110).aspx
1
25.08.2014, 12:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 12:23

Прикрепление файла к письму Outlook
Всем доброго дня! подскажите как решить такую проблему. Я пытаюсь из...

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

Прикрепление формы к краю экрана
Хотелось бы на событие мауз_клик по контролу прописать прикрепление формы к...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru