我试图检查文件是否存在,如果它没有使文本框为空!它不起作用
string[] filePaths = Directory.GetFiles(@"C:\TwinTable\LeftTableO0201", "*.*");
if (!File.Exists(filePaths.ToString()))
{
TboxLeftTable.Text = "";
}
else
{
TboxLeftTable.Text = System.IO.Path.GetFileName(filePaths[0]);
}
答案 0 :(得分:1)
好吧,您遇到的一个问题是,您只是想在数组上使用ToString()
。由于Directory.GetFiles()
返回一个文件名数组,因此您需要遍历这些文件并一次检查一个。像这样:
string[] filePaths = Directory.GetFiles(@"C:\TwinTable\LeftTableO0201", "*.*");
foreach (string curFilePath in filePaths)
{
if (!File.Exists(curFilePath))
{
TboxLeftTable.Text = "";
}
else
{
TboxLeftTable.Text = System.IO.Path.GetFileName(curFilePath);
}
}
答案 1 :(得分:0)
这是工作代码。感谢您的帮助!
string[] filePaths = Directory.GetFiles(@"C:\TwinTable\LeftTableO0201", "*.*");
if (filePaths.Length > 0)
TboxLeftTable.Text = System.IO.Path.GetFileName(filePaths[0]);
答案 2 :(得分:0)
一旦代码被修复,您仍然会有奇怪的逻辑。如果我们采用您的逻辑并用一句话将其拼写出来,则其内容如下:
从文件夹中获取文件列表,然后立即检查该文件夹中的文件是否存在
我想您要做的是:
从文件夹中获取文件列表,如果存在,则在文本框中显示第一个名字,如果不存在,则不显示任何内容
如果我是对的,那么您的代码将如下所示:
// Gets all string file paths in a folder
// then grabs the first one, or null if there are none
string filePath = Directory.GetFiles(@"C:\TwinTable\LeftTableO0201", "*.*").FirstOrDefault();
// if the path is not null, empty or whitespace
if(!string.IsNullOrWhiteSpace(filePath)
{
// then get the filename and put it in the textbox
TboxLeftTable.Text = Path.GetFileName(filePath);
}
else
{
// There were no files in the folder so make the textbox empty
TboxLeftTable.Text = string.Empty;
}