私のアプリケーションはディレクトリセパレータとしてバックスラッシュを許可しないftpと通信するので、バックスラッシュの代わりにスラッシュを使用します。Windows環境でSystem.IO.Path.GetDirectoryName(文字列パス)を使用するように強制する方法
私自身の方法を書いていないショートカット/設定はありますか?
私のアプリケーションはディレクトリセパレータとしてバックスラッシュを許可しないftpと通信するので、バックスラッシュの代わりにスラッシュを使用します。Windows環境でSystem.IO.Path.GetDirectoryName(文字列パス)を使用するように強制する方法
私自身の方法を書いていないショートカット/設定はありますか?
解説として@Tejsコメントを盗んでいます。
GetDirctoryName
が文字列を返すので、あなたは単にあなたが好む記号でバックスラッシュを置き換えることができます。
Path.GetDirectoryName(path).Replace("\\", "/")
Hmm。 OK。だから私はそうする必要があります。私は好きでも好きでもないが、私はしなければならない:@パフォーマンスの問題:特定の文字を使用する方法と別の文字を置き換える方法に違いがある –
はい、文字列操作でパフォーマンスが低下します。 –
ええ、確かですが、もし私がこの小さなもの、もう1つ、もう1つを加えたら...ドイツではこう言います: "Kleinvieh macht auch mist!"と翻訳されています。 –
理由だけではなく、 ''を呼び出すmyString.Replace(「\\」、「/」)にしませんか? – Tejs
私はこれを私のコード全体ではしないので。さらに、パスが書き込まれるか決定される前に、変更するよりもはるかに高いパフォーマンスが必要です。また、ファイルをアップロードするたびに置き換えられ、スクリプトが実行されるたびにアップロードする束があります。 –
ファイルシステムが理解できない、またはサポートしていない方法で値を返す方法があるかどうかはわかりません。私が考えることができる最も簡単な方法は、拡張メソッドを作成し、Tejsが提案したものを実行することです。その後、GetDirectoryNameを取得する必要があるどこにでもその拡張メソッドを使用してください。 –