93

画像へのhrefファイルパスを含むxmlファイルがあります(例: ".... \ images \ image.jpg")。hrefsには相対パスが含まれています。次に、画像へのhrefを抽出し、ファイルシステムで絶対パスに変換する必要があります。

GetFullPathメソッドについては知っていますが、試してみましたが、C:のように見えるCurrentDirectoryセットからしか機能しないようです。そのため、どのように使用できるかわかりません。それでも、hrefsを含むファイルの絶対パスとhref相対パスがあるので、の絶対パスに基づいて「....」パーツの数を数えるのは簡単な作業なので、含まれているファイルには、これをプログラムで実行する方法もあるはずです。

知らない簡単な方法があるといいのですが!何か案は?

4

8 に答える 8

151
string exactPath = Path.GetFullPath(yourRelativePath);

作品

于 2014-09-25T08:45:15.043 に答える
113

XMLファイルが存在する実際のディレクトリを知っていると仮定すると、Path.Combineを使用します。

var absolute_path = Path.Combine(directoryXmlLivesIn, "..\images\image.jpg");

.. が折りたたまれたフルパスを取得したい場合は、次を使用できます。

Path.GetFullPath((new Uri(absolute_path)).LocalPath);
于 2011-01-25T16:46:47.750 に答える
35

これはうまくいきました。

var s = Path.Combine(@"C:\some\location", @"..\other\file.txt");
s = Path.GetFullPath(s);
于 2011-01-25T16:48:31.423 に答える
7

「ベース」パスで Path.Combine を使用してから、結果に対して GetFullPath を使用できます。

string absPathContainingHrefs = GetAbsolutePath(); // Get the "base" path
string fullPath = Path.Combine(absPathContainingHrefs, @"..\..\images\image.jpg");
fullPath = Path.GetFullPath(fullPath);  // Will turn the above into a proper abs path
于 2011-01-25T16:43:28.840 に答える
5

メソッドを試しましたかServer.MapPath。ここに例があります

string relative_path = "/Content/img/Upload/Reports/59/44A0446_59-1.jpg";
string absolute_path = Server.MapPath(relative_path);
//will be c:\users\.....\Content\img\Upload\Reports\59\44A0446_59-1.jpg
于 2011-01-25T16:43:39.860 に答える
0

http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspxをご覧くださいPath.Combine

于 2011-01-25T16:43:32.407 に答える