C# C存在不允许的文件
我有一个包含以下文件的文件夹: file1.exe 文件2.dll 我要检查此文件夹中是否存在无关文件。例如,如果我在这个文件夹中创建examplefile.exe,它必须给我一个错误,必须只有上面列出的文件。所以我创建了所需的文件字符串:C# C存在不允许的文件,c#,file,detect,C#,File,Detect,我有一个包含以下文件的文件夹: file1.exe 文件2.dll 我要检查此文件夹中是否存在无关文件。例如,如果我在这个文件夹中创建examplefile.exe,它必须给我一个错误,必须只有上面列出的文件。所以我创建了所需的文件字符串: string[] only_these_files = { "file1.exe", "file2.dll" }; 现在我需要搜索无关文件,但如何搜索?马上谢谢你 我试过这个代码,但我不知道如何检查它 string[] only_the
string[] only_these_files = {
"file1.exe",
"file2.dll"
};
现在我需要搜索无关文件,但如何搜索?马上谢谢你
我试过这个代码,但我不知道如何检查它
string[] only_these_files = {
"image1.png",
"image2.png",
"image3.png",
"image4.png",
"image5.png"
};
string[] fileEntries = Directory.GetFiles(@"C:\Users\Dewagg\Desktop\test\");
List<String> badFiles = new List<string>();
foreach (string fileName in fileEntries)
if (!only_these_files.Contains(fileName))
{
badFiles.Add(fileName);
}
试试这个,因为你只需要检查两个文件,顺便说一句,使用arraylist进行编码是一个糟糕的惯例
try{
if (!File.Exists("TextFile1.txt"))
throw new FileNotFoundException();
}
catch(FileNotFoundException e)
{
// your message here.
}
如果您想检查代码,那么您可以始终在代码中设置断点并观察执行情况。您希望在桌面上创建文件,以便了解预期结果 如果要验证没有任何坏文件,则可以检查坏文件列表的大小 所以你想要的是:
if(badFiles.Count>0)//based off your sample code with png's
{
//notify user
MessageBox.Show("Bad files were found"); //or create anonymous function to display bad files
// or Console.WriteLine("Bad files were found");
}
这不完全是火箭科学:像这样的东西会让你:
HashSet<string> allowedFiles = new HashSet<string>( StringComparer.OrdinalIgnoreCase )
{
"file1.exe" ,
"file2.dll" ,
};
DirectoryInfo directory = new DirectoryInfo( @"c:\foo\bar" ) ;
bool containsNonAllowedFiles = directory
.EnumerateFiles( @"C\foo\bar" )
.Any( fi => !allowedFiles.Contains( fi.Name ) )
;
bool containsAllAllowedFiles = allowedFiles
.All( fn => directory.EnumerateFiles( fn ).Any() )
;
不要要求社区为您编写代码。在修复您自己的代码时寻求帮助。将问题分解为多个部分,然后带着您不知道如何处理的特定部分返回此处:1获取文件夹中所有文件的列表2查看文件列表中的任何文件是否不是允许的两个文件之一3向用户报告错误消息。我尝试了此代码,但我不知道如何检查。你是什么意思?@sstan,idk如何检查是无关的files@Dewagg:当前代码有什么问题。它不起作用了?如果没有,请说明它有什么问题。具体点。据我所知,OP不仅仅想检查文件是否存在,还想确保该目录中没有任何其他文件。例如,System.IO.directory myDir=getmydirectory;int count=myDir.GetFiles.Length;然后他可以检查计数是否为2我宁愿看一个列表,然后每天直接比较一系列的单个项目。。。它可以扩展。Noooooop,我只想写允许的文件,如果系统发现无关的文件来向我显示消息对不起,我不是英国人,我愿意,但他是一个初学者,一个快速的硬修复应该可以,我guess@sstan接得好,他没有看完所有的代码谢谢,这对我有用