我正在尝试检查服务器上是否存在文件路径,以便可以使用它。我目前正在使用localhost作为服务器进行测试。我尝试if (File.Exists(filePath1))
它找到了路径,但它在本地查找文件而不访问服务器。
如何检查filePath1
中是否存在server1
?我在部署之前使用以下参数值来测试解决方案。
ParmNames类中的参数值:
filePath1 = "C:\\Users\\smithj\\Documents\\file.txt"
server1 = "localhost"
public class class1
{
FileRules putFileRH = new FileRules();
List<IRuleParameter> FileParms = new List<IRuleParameter>();
private bool Method1()
{
FileParms.Add(new RuleParms(ParmNames.SourceServer, server1.ToString(), string.Empty));
FileParms.Add(new RuleParms(ParmNames.FileName, filePath1, string.Empty));
foreach (var server in FileParms) //not sure if this actually goes through each server or through each parm in FileParms
{
//if (File.Exists(filePath1)) first attempt
if (File.Exists(server.ValueEnvironment)) //this attempt doesn't find the file
{
...
return true;
}
else
{
...
return false;
}
return true;
}
}
}
IRuleParameter界面:
public interface IRuleParameter
{
string Name { get; }
string ValueEnvironment { get; }
string ValueType { get; }
}
答案 0 :(得分:2)
在这里你应该检查server.FileName
(或RuleParms
类中你的属性名称)
if (File.Exists(server.ValueEnvironment))
{
return true;
}
在你的foreach循环server
代表你当前的RuleParms
项。所以你需要检查它的属性。FileName
应该是你的属性名称,其中包含filePath1
值。
答案 1 :(得分:1)
您希望查找具有给定名称的所有规则并检查某些/所有此类规则的条件。根据您检查条件的需要,使用Where
过滤掉您想要的规则Any
或All
...当前样本Any
应该足够了:
var fileExists = FileParms
.Where(r => r.Name == ParmNames.FileName) // find all "File names"
.Any(r =>File.Exists(r.ValueEnvironment) // check if any of the files exist