1

というフォルダがあるとしますtest
ここで、そのフォルダーをプログラムに渡すとtest.xyz、ターゲット フォルダーを含む同じディレクトリで呼び出されるファイルが出力されます。

私が使用している一般的なロジックは次のようなものです

string outDir = Path.GetDirectoryName(path);
string outName = Path.GetFileName(path).TrimEnd("\\".ToCharArray()) + ".xyz";
string outFile = Path.Combine(outDir, outName);

これは機能しますが、新しいファイル名を作成するためだけに非常に多くの操作を実行するのは、ちょっとやり過ぎのようです。

1: 結果を得るために Path 呼び出しの数を減らすことはできますか?
2: トリミングを回避し、その追加操作を使用しないようにするために、2 行目について何かできることはありますか?

4

2 に答える 2

2

これは私の簡単なテストでうまくいくようです:

string outFile = Path.GetFullPath(path) + ".xyz";

path末尾のスラッシュが既に含まれている可能性があることに気付きましたが。それを避けるために変更できない場合でも、.TrimEnd()呼び出しを含める必要があります。

私のテストでは、を使用してvar path = @"C:\Windows\System32";います。

于 2012-06-10T20:01:32.260 に答える
0

そのために FileInfo を使用できます。

string path = @"C:\Windows\System32\";
FileInfo fi = new FileInfo(path);
string outFile = fi.DirectoryName + ".xyz";

魅力のように機能します。ディレクトリ文字列の末尾にスラッシュがあっても

于 2012-06-10T20:10:26.013 に答える