私は、ユーザーがいくつかのデータで満たされたカスタム テンプレートからファイルをエクスポートできるようにするアプリケーションを持っています。現在、ユーザーは保存先を選択できます。ファイルが既に存在する場合は、好みに応じて上書きするか、新しい名前を生成します。
エクスポート先のフォルダー/ファイル名、およびファイルが存在するかどうかにかかわらず上書きするかどうかは、ユーザーが作成して保存する構成ファイルに保存されます。次に、このファイルを実行するだけで、アプリケーションはデータの収集とこれらのファイルのエクスポートを開始します。
危険なのは、C ドライブに保存する構成ファイルを送信して、それを開いて実行するだけで、C ドライブにあるファイルがたまたま同じである場合に上書きされる可能性があることです。名前。私が考えているのは、ファイルを保存するフォルダーをユーザーに選択させ、この設定を構成ファイルではなくユーザー設定として保存することです。そのため、構成ファイルを指定すると、このファイルは何にでもエクスポートされますエクスポート先として選択したフォルダー。ただし、構成ファイルはファイル名を決定します。
ファイル名として有効なファイル文字のみを入力するように強制するのは簡単です (その\
文字は除外されます)。エクスポートされたファイルをより適切に整理できます。しかし..\..\something_important.exe
、そうすると、ユーザーがエクスポート用に定義したフォルダーの外に保存されるようなものを入力できます。\sub\subsub\myfile.txt
のようなパスに入ることができるようにするにはどうすればよいでしょうか..\..\myfile.txt
。..\
パスに文字列が含まれていないことを確認するだけで十分でしょうか? ..\
フォルダ ツリーを上に移動できるような他のコードはありますか?