-1

ローカル ネットワーク内の別の PC にデータベースからデータをロードすると、完全に正常に動作します。

サーバー名とデータベースパスを入力するだけで機能します。

現在、サーバー上のフォルダーで最新の変更されたファイルも探しています。ローカルPCでは正常に動作しますが、サーバー名とパスを使用すると、実行可能フォルダーのパスと連結されたパスが生成されます。

string tmpPath=string.Empty;
if (serverName != "")
  {
   tmpPath = "\\" + serverName + "\\" + TrackingPath + "\\u00" + ID;
  }

そして、この後、フォルダーを読み取って最新の変更されたファイルを取得します。

しかし、パスは ....Debug\servername\trackingpath..... になります。これは間違っています。

Servename=testServer
TrackingPath= TmpFolder\SharedFolder\TrackingFolder

だから私のコードによれば、それはなるはずですが \\testServer\\TmpFolder\SharedFolder\TrackingFolder、代わりにそれを作る project....\Debug\\\testServer\\TmpFolder\SharedFolder\TrackingFolder ので、どうすればtestserverからこのフォルダを読むことができますか

4

1 に答える 1

0

Path.Combineを使用してパス ファイルを操作します。バックスラッシュは C# の特殊文字であり、他の文字をエスケープするために使用されることに注意してください。だからあなたが必要です

string ID = "test";
string TrackingPath = "tracking";
string serverName = "server_name";
string tmpPath=string.Empty;
if (serverName != "")
{
    tmpPath = Path.Combine(@"\\", serverName, TrackingPath ,"u00" + ID);
}
Console.WriteLine(tmpPath);

文字列にバックスラッシュを挿入するには、バックスラッシュを 2 つにするか、Verbatim 文字列プレフィックス文字を前に付ける必要があります@

3.5 フレームワーク以下の使用

    tmpPath = Path.Combine(Path.Combine(Path.Combine(@"\\", serverName), TrackingPath) ,"u00" + ID);

あまり効率的ではありませんが、機能します

于 2013-06-06T14:39:43.177 に答える