2016-07-10 15 views
-2

アプリケーションの現在のディレクトリを取得し、ここからファイルを読み込むにはどうすればよいですか? したがって、アプリケーションはLogger.txtと同じフォルダにありますが、アプリケーションを起動するときにアプリケーションのルートフォルダから読み取ろうとします。 Logger.txtはLogging/MainObject/Logger.txtにあります 私はCurrentDirectoryのものを追加しようとしましたが、エラーが出ます。VB.Net現在のディレクトリからtxtファイルを読み込みます

Dim sr As New StreamReader("Logger.txt") 
Dim line As String 
line = sr.ReadToEnd() 
+0

それとも唯一の方法である\\ロガー\\ MainObject \\ Logger.txt。? –

+0

あなたは基本的にソリューションエクスプローラに追加したファイルを読みたいのですか? – Werdna

+0

メインプログラムは動作しているので、ここで追加したコード、その作業、そのファイルを読み込みますが、そのアプリケーションは現在のディレクトリからではなく、別のフォルダからファイルを読み込みます。 Logger.txtとexeファイルは同じフォルダにあります... –

答えて

0

まず、「現在のディレクトリ」と「アプリケーションディレクトリ」の違いについて混乱していると思います。現在のディレクトリは、あなたが現在作業しているディレクトリを追跡するためにプロセスによって維持されている情報の一部です。したがって、完全なパスを指定せずにファイルを参照すると、そのファイルを探す場所がわかります。アプリケーションディレクトリは、アプリケーションのEXEファイルがファイルシステム上にある場所です。現在のディレクトリからの読み込みは、完全なパスを指定せずにファイルを参照するだけの簡単な問題であるため、アプリケーションのディレクトリ(EXEファイルが存在する場所)からファイルを読み込むことを想定しています。ここではそれを行うためのコードがあります:

Dim ApplicationDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) 
Dim LogfilePath = System.IO.Path.Combine(ApplicationDir, "Logger.txt") 
Using sr As New System.IO.StreamReader(LogfilePath) 
    sr.ReadToEnd() 
End Using 
0

使用Application.StartupPath

Dim sr As New StreamReader(Application.StartupPath & "\Logger.txt") 
Dim line As String 
line = sr.ReadToEnd() 
関連する問題