相対パスを使用してStreamWriter
を作成しています。しかし、ファイルは表示されません。トラブルシューティングを行うために、フルパスが期待どおりであることを確認したいと思います。では、StreamWriter
インスタンスがある場合、書き込むファイルのフルパスを取得するにはどうすればよいですか?
string fileName = "relative/path.txt"
StreamWriter sw= new StreamWriter(fileName);
// What is the full path of 'sw'?
相対パスからフルパスを取得するには、 Path.GetFullPath メソッドを使用します。
例えば:
string fileName = "relative/path.txt";
string fullPath = Path.GetFullPath(fileName);
私のバージョンのフレームワークでは、これは機能しているようです。
string fullPath = ((FileStream)(streamWriter.BaseStream)).Name;
(デバッグによって検出されました。)
ディレクトリ 'relative'が存在しない可能性があります。手動で作成してください。または、以下のようにプログラムで作成します
string fileName = @"relative\path.txt";
fileName = Path.GetFullPath(fileName);
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
StreamWriter sw= new StreamWriter(fileName, true);
Dim fs As FileStream = CType(sw.BaseStream, FileStream)
Dim fi As New FileInfo(fs.Name)
Console.WriteLine(fi.FullName)