Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
damonxx
7 / 7 / 2
Регистрация: 12.08.2013
Сообщений: 196
#1

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

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

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

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

Хранение файлов в DLL - C#
Здраствуйте. Подскажите пожалуйста, возможно ли создать *.dll для основной программы и хранить в ней/нем файлы, ну например картинки, чтобы...

Хранение файлов в FileStream - C#
Привет Всем. Имеем MSSQL 2008, таблица с полем файлстрим. Задача - со стороны клиента добавлять файлы в базу и открывать их. Если...

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

Прикрепление иконок к программе - C#
Скажите пожалуйста, как прикрепить к программе на C# иконки таким образом, чтобы они отображались если в свойствах ярлыка этой программы на...

Прикрепление формы к краю экрана - C#
Хотелось бы на событие мауз_клик по контролу прописать прикрепление формы к правому краю экрана. Подскажите как это можно реализовать,...

13
titans2011
301 / 262 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
20.08.2014, 08:53 #2
Цитата Сообщение от damonxx Посмотреть сообщение
эти формы на ней отображались
какие эти?
Цитата Сообщение от damonxx Посмотреть сообщение
Подскажите в какую сторону копать.
Вы вообще не понимаете как сделать, или есть определенные затруднения в чем-то конкретном?
1
damonxx
7 / 7 / 2
Регистрация: 12.08.2013
Сообщений: 196
20.08.2014, 09:16  [ТС] #3
titans2011, извиняюсь не формы а файлы в форме, по клике на на файлы они либо открывались либо скачивались.
Вообще не понимаю как это осуществить.
0
titans2011
301 / 262 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
20.08.2014, 11:20 #4
Цитата Сообщение от damonxx Посмотреть сообщение
файлы в форме
Опишите как вы себе это представляете?
1
damonxx
7 / 7 / 2
Регистрация: 12.08.2013
Сообщений: 196
20.08.2014, 11:33  [ТС] #5
есть БД (mssql) где хранится перечень работ с их описанием, в программе отображается через грид. К этим работам прилагаются дополнительные файлы(exel, word. txt....). Так вот я хочу что бы при открытии формы с описанием, внутри этой формы можно было прикрепить дополнительные файлы и потом на этой же форме можно было открыть этот файл.
0
Learx
1039 / 846 / 86
Регистрация: 31.03.2010
Сообщений: 2,465
20.08.2014, 11:41 #6
damonxx, 1) System.IO.Directory может дать вам список файлов в определенной директории
Далее для выбранного файла берем FileStream и считываем его
(или, может, иначе. например для чтения фото есть специальный класс Bitmap и его конструктор может принять путь к файлу)
2) Если у вас файлы могут хранится как локально так и на веб-ресурсе, то создаем xml-файл который хранит ссылки и получаем ссылки из него.
структуру файла определить таким образом, чтоб сразу было видно где локальные, а где веб-ресурсы.
как с локальными работать я показал, а для веб-ресурсов используем WebClient
1
damonxx
7 / 7 / 2
Регистрация: 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
301 / 262 / 43
Регистрация: 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 / 2
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 08:05  [ТС] #9
titans2011, В коде
C#
1
 System.IO.File.WriteAllText(folderName, file);
Вылазит ошибка "Отказано в доступе по пути "\\Ass\общая\тендера\тест"."
Доступ стоит полный для всех, галочка только для чтения убрана.
0
titans2011
301 / 262 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 09:28 #10
Цитата Сообщение от damonxx Посмотреть сообщение
Вылазит ошибка "Отказано в доступе по пути "\\Ass\общая\тендера\тест"."
Ну потому что вы не уточнили, где будете записывать: локально или по сетевому адресу. Отсюда разные функции.
1
damonxx
7 / 7 / 2
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 09:47  [ТС] #11
titans2011, тоже самое если я сохраняю в C:\\tmp
0
titans2011
301 / 262 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 11:24 #12
Стоп. Ошибочка в коде.
Надо указать путь к файлу а не путь к папке, второй параметр идет текст.
C#
1
System.IO.File.WriteAllText((folderName+"\\"+file), text);
1
damonxx
7 / 7 / 2
Регистрация: 12.08.2013
Сообщений: 196
25.08.2014, 12:09  [ТС] #13
titans2011,
Запутался, сведу вопрос к простому, как осуществить копирование нескольких файлов с помощью openFileDialog и folderBrowserDialog/
0
titans2011
301 / 262 / 43
Регистрация: 27.09.2010
Сообщений: 1,058
25.08.2014, 12:23 #14
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
Привет! Вот еще темы с ответами:

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

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

Переключатель в WinForm - C#
Необходимо создать переключатель по типу iphone или metro никак не могу разобраться как это сделать. Пошарил в настройках чекбокса и...

Потоки в WinForm - C#
Добрый вечер, форумчане!!!=) Недавно начал разбираться с потоками в C#, но вот дошел до WinForm, и завис...... Почитал на msdn, но...


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

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

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