ftpサーバーからファイルをダウンロードし、Path.GetTempPath()で定義されたディレクトリに保存しています。しかし、私は次のエラーが表示されます:パスの一部を見つけることができませんでした。C#Path.GetTempPathが "パスの一部を見つけることができませんでした"エラーを返します。
返されるパスが正しいことを確認しました.C:\ Users \ [ユーザー名] \ AppData \ Local \ Tempです。
SYSTEM、Administrators、および[username]はすべて、そのディレクトリを完全に制御します。私は一時ディレクトリのポイントは何か/誰もが保存するために開いていたと思ったが、ちょうど場合には、私もNETWORK SERVICEに権限を変更しました。 (私はASP.NET Dev Serverが使用するユーザー名だと思っていますが、わかりません)
私はVistaでVS 08を使用しています。私は本当に私がここで間違ってやっていることについて任意のアイデアをいただければと思います
FtpWebRequest downloadRequest = (FtpWebRequest)WebRequest.Create(
ConfigurationManager.AppSettings["FTPServer"] + "//" + fileName);
downloadRequest.Credentials = new NetworkCredential(
ConfigurationManager.AppSettings["FTPUsername"],
ConfigurationManager.AppSettings["FTPPassword"]);
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse downloadResponse =
(FtpWebResponse)downloadRequest.GetResponse();
try
{
Stream downloadStream = downloadResponse.GetResponseStream();
if (downloadStream != null)
{
logger.Info("File Download status: {0}",
downloadResponse.StatusDescription);
StreamReader downloadReader = new StreamReader(downloadStream);
try
{
if (downloadReader != null)
{
StreamWriter downloadWriter =
new StreamWriter(Path.GetTempPath());
downloadWriter.AutoFlush = true;
downloadWriter.Write(downloadReader.ReadToEnd());
}
}
finally
{
if (downloadReader != null)
{
downloadReader.Close();
}
}
}
}
finally
{
if (downloadResponse != null)
{
downloadResponse.Close();
}
}
:
は、ここに私のコードです。
ありがとうございます!
ありがとうございます! 上記のコードを使用すると、パスに不正な文字が含まれているとエラーが表示されますが、私は奇妙なfileNameをハードコードするときではありません。 –
fileNameの文字列の値を再度確認します。たぶん奇妙なキャラクターの消毒が必要でしょうか? – Stephen
うん、それをチェックしてください。私はログに文字列を書いています。それはうまく見えます:2009-09-10124317Z_FirstLast_metadata.txtまた、ログからStreamWriterにコピーした文字列をハードコードすると、それは機能します。 –