从FTP服务器下载文件时路径中的非法字符

时间:2017-10-06 13:24:19

标签: c#

应用程序在生产服务器中运行良好,但在过去2天内,应用程序在下载文件时收到“路径中的非法字符”。

现在应用程序正在以下面的格式读取文件:应用程序引发问题:

  

[2017-06-10 11:30:09 +1] DEBUG 94 [PickFileService] - 找到的文件   下载:52 Oct 03 06:34

<a href="https://bytes.com/SimboxDetection-TigoTD_20171003_14_40.csv">https://bytes.com/SimboxDetection-TigoTD_20171003_14_40.csv</a>

但正确的文件应该是:

  

[2017-29-09 18:17:11 +1] DEBUG 6 [PickFileService] - 找到的文件   下载:FB_OnNet_2017-09-29-18-17-04.csv

你们能让我知道吗,会是什么问题?????

1 个答案:

答案 0 :(得分:0)

应用程序正在从具有.csv格式的FTP服务器读取文件,然后从特定路径的FTP服务器下载文件。

以下代码是从FTP服务器读取文件:

public string [] ListDirectory(){             var list = new List();

        var request = createRequest(WebRequestMethods.Ftp.ListDirectory);

        using (var response = (FtpWebResponse)request.GetResponse()) {
            using (var stream = response.GetResponseStream()) {
                using (var reader = new StreamReader(stream, true)) {
                    while (!reader.EndOfStream) {
                        list.Add(reader.ReadLine());
                    }
                }
            }
        }

        return list.ToArray();
    }

在获取日志文件时,如下所示:

更正示例:FB_OnNet_2017-09-29-18-17-04.csv

现在就这样 https://bytes.com/SimboxDetection-TigoTD_20171003_14_40.csv

要从FTP服务器下载文件,我们使用了以下代码:

public string DownloadFile(string source,string dest){             log.Debug(“Entered DownloadFile()”);             var request = createRequest(combine(uri,source),WebRequestMethods.Ftp.DownloadFile);             log.Debug(“请求创建”);

        byte[] buffer = new byte[bufferSize];

        using (var response = (FtpWebResponse)request.GetResponse()) {
            using (var stream = response.GetResponseStream()) {
                using (var fs = new FileStream(dest, FileMode.OpenOrCreate)) {
                    int readCount = stream.Read(buffer, 0, bufferSize);

                    while (readCount > 0) {
                        if (Hash)
                            Console.Write("#");

                        fs.Write(buffer, 0, readCount);
                        readCount = stream.Read(buffer, 0, bufferSize);
                    }
                    log.Debug("Download completed for file : " + source);
                }
            }

            log.Debug("Exiting DownloadFile()");
            return response.StatusDescription;
        }
    }

我的问题是这段代码工作正常,但是现在应用程序从FTP服务器读取文件后出现“路径中的非法字符”错误。 能不能让我知道我们如何解决。