4

VS 2005 WinXP

samba共有に接続するアプリケーションを書いています。

しかし、私のパスでは、コンパイルエラーが発生します:

unrecognized escape sequence

私が使用しているパスは次のとおりです。

string path = "\\Samba\sun005\admin_config\test.txt";

また、ダブルバックラッシュを使用して次のことを試しました。

string path = "\\Samba\\sun005\\admin_config\\test.txt";

ただし、上記は正常にコンパイルされますが、実行すると「パスが見つかりません」と文句を言います。

また、次のことを試しました。

string path = @"\\Samba\sun005\admin_config\test.txt";

デバッガーをチェックインすると、次の文字列が表示されます

\\Samba\\sun005\\admin_config\\test.txt

例外としてアクセスが拒否されます。今、私はそれについて考えています。ユーザー名とパスワードを設定していません。それが私の問題だと思います。

4

2 に答える 2

13

UNCパスには、マシン名、共有名、共有ポイントからの相対パスのみを含める必要があります(「samba」スキームを含める必要はありません)。マシン名がsun005の場合、次の2つのいずれかが機能するはずです。

"\\\\sun005\\admin_config\\test.txt"
@"\\sun005\admin_config\test.txt"
于 2010-07-21T03:00:08.257 に答える
5

コンパイラは \\Samba\sun005\admin_config\test.txt として認識し\Samba\sun005\x07dmin_config\x09est.txtます。しかし、それは'\s'を理解していません。

コンパイラー\\Samba\\sun005\\admin_config\\test.txt\Samba\sun005\admin_config\test.txtどちらに満足しているかを確認しますが、最初に2つのスラッシュが本当に必要です。そのためには、4つのスラッシュ「\\Samba...」を使用する必要があります。

@"\\Samba\sun005\admin_config\test.txt"まさにあなたが望むものです!デバッガーが追加するため、デバッガーに余分なスラッシュが表示されます。これにより、文字列に実際に何が含まれているかを確認できます。文字列に改行文字が含まれている場合は、「\n」と表示されます。

于 2010-07-21T03:03:40.827 に答える