gpt4 book ai didi

c# - 确保用户只能保存在文件夹内

转载 作者:行者123 更新时间:2023-11-30 21:05:14 24 4
gpt4 key购买 nike

我有一个应用程序可以让用户从填充了一些数据的自定义模板中导出文件,现在他们可以选择将文件保存到的位置。如果该文件已经存在,它将覆盖它或根据他们的喜好生成一个新名称。

它将导出到的任何文件夹/文件名以及是否覆盖该文件(如果它存在)都存储在用户创建和保存的配置文件中。然后他所做的就是运行这个文件,应用程序将开始收集数据并导出这些文件。

所以危险在于我可以向您发送一个保存到 C 驱动器的配置文件,您需要做的就是打开它并运行它,它可能会覆盖您在 C 驱动器上的文件,如果它们碰巧发生了有相同的名字。我正在考虑做的是让用户选择一个文件夹来保存文件,并将此首选项不存储在配置文件中,而是将其保存为用户首选项,所以如果我给你一个配置文件,这个文件将导出到任何您选择导出到的文件夹。不过,配置文件将确定文件名。

很容易强制他们只输入有效的文件字符作为文件名(这将排除 \ 字符),但我想让他们输入子文件夹和文件名配置文件中只有一个文件名,这样他们就可以更好地组织导出的文件。但如果我这样做,他们可以输入类似 ..\..\something_important.exe 的内容,这将保存在用户为其导出定义的文件夹之外。您如何确保他们可以输入类似于 \sub\subsub\myfile.txt 而不是 ..\..\myfile.txt 的路径。是否足以确保路径中没有 ..\ 字符串?是否有任何其他代码,如 ..\ 可以让他们向上导航文件夹树?

最佳答案

我建议您使用 FolderBrowserDialog允许用户选择一个文件夹。这是用户可能有使用经验的常见对话框。如果您有关于用户可以选择哪个文件夹的其他规则,您可以在用户选择文件夹后执行此验证,如果说用户选择了根文件夹则拒绝它。

FolderBrowserDialog

(图片取自FolderBrowserDialog in C#。)

关于c# - 确保用户只能保存在文件夹内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com