2016-10-17 4 views
0

私はイメージのパスを見つけたいが、私はしなかった。C#で画像パスを見つけるには?

私のイメージのパス:C:ワークス\ Web5.1.0 \ SRC \ Works.WebNext \パスワード\資産\ \ IMG 私のイメージ名:reset_password.jpg

私はこの試みた:string path2 = Path.GetFullPath("reset_password.jpg");をしかし、それは間違ったパス(output: C:\Windows\System32\inetsrv)です

と、この試みた:私は思う

string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); 
string a = Path.Combine(path, "reset_password.jpg"); 

output : (C:\Works\Web5.1.0\Src\Works.WebNext\bin) 

を、出力は次のようにする必要があります:C:\Works\Web5.1.0\Src\Works.WebNext\Password\assets\img

もう1つ:イメージパスが別のコンピュータと異なる場合がありますので、特定のパスが正しくないと思われます(例:C:\ Works \ Web5.1.0 \ Src \ Works.WebNext \ Password \ assets \ img)

X computer : C:\Works\Web5.1.0\Src\Works.WebNext\Password\assets\img 
Y computer : C:\Works\Web\Src\Works.WebNext\Password\assets\img 

ところで、私はC#で書いています。

どうすればいいですか? ご意見ください。

+0

を試してみてください。 – SeM

答えて

2

私は問題を理解してきたかわからないが、多くのシステムで同じファイルを検索する方法のアイデアがある:

AppDomain.CurrentDomain.BaseDirectory 

これはあなたを与えるだろう実行中の実行可能ファイルが格納されているフォルダの場所。出力は "C:¥Folder¥Folder¥WindowsFormsApplication1¥WindowsFormsApplication1¥bin¥Debug¥"の形式です。

したがって、イメージを.exeと同じフォルダに配置し、「imagefilename.type」を追加すると見つかるはずです。

これがあなたの質問に答えるかどうかを明確にしてください。

+1

良い答え。どうもありがとう ! @ジュリスA – eagle

0

次のコードは、

string folderPath = @"C:\Works\Web5.1.0\Src\Works.WebNext\Password\assets\img"; 
string imgFilePath = Path.Combine(folderPath, "reset_password.jpg") 

Assembly.GetExecutingAssembly()は(あなたの場合にはその「ビン」フォルダを)あなたの実行可能ファイルが実行されている場所からのパスつまり現在の作業ディレクトリのパスを与えるあなたの所望の出力を与えます

+0

しかし、画像パスは他のコンピュータと同じではないかもしれません。特定の経路を与えるのは正しいですか? @Amey Kamat – eagle

+0

設定(App.Config)のキーを使用してフォルダパスを選択するか、相対パスを使用して、リリースフォルダに存在するフォルダに画像を保存することができます。 –

0

は、あなたができるだけでなく、画像の名前はそのパスを見つける渡すことによって、WebアプリケーションでThis-

string imagePath = "/Password/"; /* Your Image folder */ 
    string path = Server.MapPath(@"ImagePath" + imagePath); 
Windowsの応用 - で

try 
     { 
      System.IO.DirectoryInfo directory = new DirectoryInfo(@"Your local Image directory inside bin/debug"); 

      FileInfo result = null; 
      var list = directory.GetFiles(); // Stackoverflow Exception occurs here 
      if (list.Count() > 0) 
      { 
       result = list.OrderByDescending(f => f.LastWriteTime).First(); 
      } 
      return result; 
     } 
     catch (Exception ex) 
     { 

      throw ex; 
     } 
関連する問題