ユーザー入力を受け付けないようにして、ファイルを読み書きするパスを選択することを強く推奨します。しかし、あなたが保持したいベースディレクトリ(例えばftpフォルダのルート)を持っていると仮定すると、与えられたユーザ入力がそのフォルダ内に私たちを保持するようにするにはどうすればよいですか?例えばサブディレクトリ内のユーザー入力ファイルパスを安全に実施
、
Path.Combine(_myRootFolder、_myUserInput)
はまだ_myRootFolderの外で私たちを取ることができます。そして、これはまた、危険な可能性があり
NEWPATH = Path.Combine(_myRootFolder、_myUserInput) (newPath.StartsWith(_myRootFolder)) ...
は「/バック/に/ myrootfolder /のようなものを与えられている場合。 ./../and/out/again "と入力します。これのための戦略は何ですか?私が使用することができますblindingly明白な.NETメソッドが欠けていますか?
ええ、それは私が望む機能の一種です...私は残念なことに、ある場所から別の場所に複数のファイルをバッチでアップロードするWindowsサービスで残念です。 –
別のアプローチを追加しました – blowdart
クール - ありがとう - GetFullPathは行く方法のように見えます:) –