C# 从 bool 移动文件
C# Move file from bool
我有这个代码:
bool containsNonAllowedCLEOFiles = directory.EnumerateFiles().Any(file => !allowedCLEOFiles.Contains(file.Name));
if (containsNonAllowedCLEOFiles == true)
{
DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if(existsunallowedcleofiles == DialogResult.OK)
{
//move files
}
return;
}
如果存在 extraneous/unallowed 个文件,我会收到此消息。但是当我单击“确定”时,我想将这些文件移动到另一个目录。我该怎么做?我不想移动所有文件,只想移动无关的/不允许的文件。
P.S 我知道我必须使用 File.Move("file", "directory");要么
类似这样的东西,但我不知道如何获取该文件名..等等
您可以使用:
var filesMatchingPattern = System.IO.Directory.GetFiles(DIRECTORY, PATTERN);
嗯,听起来你应该先找到那些文件,然后检查是否有:
var invalidFiles = directory.EnumerateFiles()
.Where(file => !allowedCLEOFiles.Contains(file.Name));
.ToList();
if (invalidFiles.Any())
{
// ... Prompt user as before ...
foreach (var invalidFile in invalidFiles)
{
File.Move(...);
}
}
尝试
foreach (var file in directory.EnumerateFiles().Where(file => !allowedCLEOFiles.Contains(file.Name)) {
File.Move(file.Name, destination);
}
这个怎么样:
var disallowedFiles = directory.EnumerateFiles().Where(file => allowedCLEOFiles.Contains(file.Name)).ToList();
if (disallowedFiles.Any())
{
DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if(existsunallowedcleofiles == DialogResult.OK)
{
disallowedFiles.ForEach(file => File.Move(file.Name, "destination"));
}
return;
}
我有这个代码:
bool containsNonAllowedCLEOFiles = directory.EnumerateFiles().Any(file => !allowedCLEOFiles.Contains(file.Name));
if (containsNonAllowedCLEOFiles == true)
{
DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if(existsunallowedcleofiles == DialogResult.OK)
{
//move files
}
return;
}
如果存在 extraneous/unallowed 个文件,我会收到此消息。但是当我单击“确定”时,我想将这些文件移动到另一个目录。我该怎么做?我不想移动所有文件,只想移动无关的/不允许的文件。
P.S 我知道我必须使用 File.Move("file", "directory");要么 类似这样的东西,但我不知道如何获取该文件名..等等
您可以使用:
var filesMatchingPattern = System.IO.Directory.GetFiles(DIRECTORY, PATTERN);
嗯,听起来你应该先找到那些文件,然后检查是否有:
var invalidFiles = directory.EnumerateFiles()
.Where(file => !allowedCLEOFiles.Contains(file.Name));
.ToList();
if (invalidFiles.Any())
{
// ... Prompt user as before ...
foreach (var invalidFile in invalidFiles)
{
File.Move(...);
}
}
尝试
foreach (var file in directory.EnumerateFiles().Where(file => !allowedCLEOFiles.Contains(file.Name)) {
File.Move(file.Name, destination);
}
这个怎么样:
var disallowedFiles = directory.EnumerateFiles().Where(file => allowedCLEOFiles.Contains(file.Name)).ToList();
if (disallowedFiles.Any())
{
DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if(existsunallowedcleofiles == DialogResult.OK)
{
disallowedFiles.ForEach(file => File.Move(file.Name, "destination"));
}
return;
}