web-dev-qa-db-ja.com

StreamWriterのフルパスを取得する方法

相対パスを使用してStreamWriterを作成しています。しかし、ファイルは表示されません。トラブルシューティングを行うために、フルパスが期待どおりであることを確認したいと思います。では、StreamWriterインスタンスがある場合、書き込むファイルのフルパスを取得するにはどうすればよいですか?

string fileName = "relative/path.txt"
StreamWriter sw= new StreamWriter(fileName);
// What is the full path of 'sw'?
15
javapowered

相対パスからフルパスを取得するには、 Path.GetFullPath メソッドを使用します。

例えば:

string fileName = "relative/path.txt";
string fullPath = Path.GetFullPath(fileName);
11
Steve

私のバージョンのフレームワークでは、これは機能しているようです。

string fullPath = ((FileStream)(streamWriter.BaseStream)).Name;

(デバッグによって検出されました。)

44

ディレクトリ 'relative'が存在しない可能性があります。手動で作成してください。または、以下のようにプログラムで作成します

string fileName = @"relative\path.txt";
fileName = Path.GetFullPath(fileName);
Directory.CreateDirectory(Path.GetDirectoryName(fileName));

StreamWriter sw= new StreamWriter(fileName, true);
1
RajN
Dim fs As FileStream = CType(sw.BaseStream, FileStream)
Dim fi As New FileInfo(fs.Name)
Console.WriteLine(fi.FullName)
0
Aave