我有一个包含一些FTP pathes的数组,如下所示:
"ftp // ip/directory/directory1",
"ftp // ip/directory/directory2",
"ftp // ip/directory/file.txt",
"ftp // ip/directory/directory3",
"ftp // IP /目录/ another_file.csv"
如何确定路径是文件还是目录?
提前致谢.
小智 5
我有同样的问题。我根据休的回答进行了工作。您需要创建一个 FTPRequest,例如:
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
Run Code Online (Sandbox Code Playgroud)
从 StreamReader 中抓取它并将其粘在一根绳子上
StreamReader reader = new StreamReader(responseStream);
string directoryRaw = null;
try { while (reader.Peek() != -1) { directoryRaw += reader.ReadLine() + "|"; } }
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
Run Code Online (Sandbox Code Playgroud)
当你打印它时,它看起来像:
|-rw-r--r-- 1 位用户 1699 2015 年 6 月 1 日 404.shtml
|drwxr-xr-x 2 用户 user 4096 Sep 8 19:39 cgi-bin
|drwxr-xr-x 2 用户 user 4096 11 月 3 日 10:52 css
它们由 | 分隔。这将是分割字符串的分隔符
如果它以 ad 开头而不是 - 则它是一个目录,否则它是一个文件。
这些在文件名之前的大小都相同,因此为每个字符串创建一个新字符串,从位置 62 开始到结束,这将是文件名。
希望能帮助到你
没有直接的办法。
您可以间接地假设文件名没有句点“.”。是目录,但这并不总是正确的。
最好是仔细编写使用这些路径的代码,以便将路径视为目录,然后如果 FTP 服务器报告错误,则将其视为文件。