Как скрыть структуру файловой системы SaveFileDialog в C#
Я использую следующий код, чтобы открыть SaveFileDialog для сохранения файлов CSV/TXT:
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "CSV Files (*.CSV)|*.CSV|CSV Files (*.TXT)|*.TXT";
saveDialog.RestoreDirectory = true;
saveDialog.Title = "Save As";
saveDialog.FileName = justFileName;
saveDialog.InitialDirectory = "::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}"; // For local network
Я следую этому документу, чтобы использовать CLSID для указания каталога по умолчанию: https://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html
Этот код является частью пользовательского CSV-ридера, который я написал, и эта пользовательская программа находится на сервере. Я хочу, чтобы пользователи могли сохранять свои файлы CSV только на своем компьютере, а не на сервере. Поэтому мне было интересно, как я могу скрыть файловую систему / структуру каталогов сервера, которая отображается из SaveFileDialog, и показывать только локальный ПК пользователя, где файл должен быть сохранен?
1 ответ
Вам лучше решить проблему у источника - настроить разрешения в сети, чтобы пользователи не могли писать на определенные серверы и общие ресурсы.
В противном случае ничто не мешает кому-то сохранить локально, а затем скопировать файл на сервер позже.
Кроме того, я не совсем понимаю, почему у вас возникли проблемы с установкой начальной папки в качестве пространства имен сетевой оболочки, если вы не хотите сохранять ее по умолчанию.