Member 12899279 Ответов: 2

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


у меня есть приложение C# window form, теперь я хочу создать модуль, в котором учителя могут хранить файлы различных типов, таких как pdf.docx.jpeg etc в этом каталоге, и студенты могут затем получить доступ к нему, чтобы загрузить эти файлы.

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

проблема заключается в том, что я хочу, чтобы учитель загружал файлы в определенный каталог, из которого он не может перемещаться больше нигде на ПК/рабочем столе.если я использую openfiledialog в c#, то человек может легко бродить по всем каталогам каждой папки.

я хочу, чтобы это было ограничено только одной папкой, из которой он не может пойти куда-либо еще.

и еще одно-как загрузить их для студентов после того, как они будут загружены преподавателем/лектором

кстати я где то читал что хорошо сохранять файлы с помощью файловой системы вместо сохранения в базах данных вот почему я не хочу сохранять файлы в таблицах баз данных

Что я уже пробовал:

пробовал использовать представление списка для получения имен файлов в форме listview но может только читать имена файлов не может загрузить содержимое
и использовал filedialog для сохранения файлов в Каталоге, но это не дает конфиденциальности для безопасности, так как учитель/лектор может бродить по всем файлам и папкам на рабочем столе/ПК

PeejayAdams

Нет никакого встроенного свойства OpenFileDialog, которое сделает это (хотя это было бы довольно полезно!).

Вы можете добавить код в событие FileOK для сравнения пути, в противном случае вам нужно будет создать свою собственную версию элемента управления.

2 Ответов

Рейтинг:
2

BillWoodruff

Ответ прост: не используйте ' SaveFileDialog и 'OpenFileDialog; используйте жестко закодированные пути. Используйте средства администрирования для управления разрешениями на доступ, загрузку и загрузку ... папок и файлов.

[edit] важно, чтобы мы знали, работает ли ваше приложение на сервере, и вы можете контролировать доступ; или: работают ли ваши студенты и преподаватели ... оба работают с одним и тем же приложением ? Файлы находятся на сервере ?

Если вы хотите, чтобы и студенты, и учителя запускали приложение (локально), я бы сделал два специальных приложения: одно для студентов, другое для учителей.


Member 12899279

я разрабатываю студенческий портал, поэтому нет, я не могу разработать два отдельных приложения для студентов и преподавателей.
а кроме того, я не понял, что вы подразумеваете под жестко закодированными путями.
файлы находятся на моем компьютере , и это настольное приложение, как студенты, так и преподаватели будут получать доступ к нему через один и тот же ПК/рабочий стол.
я хочу сохранить файлы с помощью filestream, потому что неразумно использовать базу данных sql для хранения файлов в ней, хотя мы можем это сделать

BillWoodruff

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

Рейтинг:
1

Richard MacCutchan

В дополнение к комментарию Билла, вы могли бы начать с Класс FileDialog (System.Окна.Формы) | Microsoft Docs[^] и добавьте свой собственный расширенный код, чтобы контролировать, где пользователь может искать. Однако если вы используете ListView, то пользователю не нужно выбирать расположение файлов. Просто предоставьте список имен файлов и сохраните имя каталога скрытым.


BillWoodruff

+5 я один раз ... давным-давно, во время работы компьютерного класса для детей ... загрузка файлов (учителями) была слишком простой: вы легко можете себе представить, что произошло :)

Richard MacCutchan

Много счастливых детей. :)

BillWoodruff

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