C#Path.GetTempPath返回"找不到路径的一部分"错误

Cap*_*ous 2 c#

我从ftp服务器下载文件并将其保存到Path.GetTempPath()中定义的目录; 但是,我收到以下错误:无法找到路径的一部分.

我已经确认返回的路径是正确的:C:\ Users\[username]\AppData\Local\Temp.

SYSTEM,Administrators和[username]都可以完全控制该目录.我认为临时目录的意思是它可以保存给任何人/每个人保存,但为了以防万一,我也给了NETWORK SERVICE修改权限.(我假设这是ASP.NET Dev服务器使用的用户名,但我不确定.)

我在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();
    }
}
Run Code Online (Sandbox Code Playgroud)

对于我在这里做错了什么,我真的很感激.

谢谢!

Ste*_*hen 5

在我看来,你需要在临时路径的末尾添加一个文件名.试试这个:

StreamWriter downloadWriter =
    new StreamWriter(Path.Combine(Path.GetTempPath(), fileName));
Run Code Online (Sandbox Code Playgroud)