2
У меня есть этот код:Как передать один метод в качестве параметра другому методу?
private void SearchForDoc()
{
try
{
outputtext = @"c:\temp\outputtxt";
outputphotos = @"c:\temp\outputphotos";
temptxt = @"c:\temp\txtfiles";
tempphotos = @"c:\temp\photosfiles";
if (!Directory.Exists(temptxt))
{
Directory.CreateDirectory(temptxt);
}
if (!Directory.Exists(tempphotos))
{
Directory.CreateDirectory(tempphotos);
}
if (!Directory.Exists(outputtext))
{
Directory.CreateDirectory(outputtext);
}
if (!Directory.Exists(outputphotos))
{
Directory.CreateDirectory(outputphotos);
}
t = Environment.GetEnvironmentVariable(Environment.GetFolderPath(Environment.SpecialFolder.Personal));
ApplyAllFiles(t,ProcessFile(t);
for (int i = 0; i < textfiles.Length; i++)
{
FileInfo fi = new FileInfo((textfiles[i]));
DirectoryInfo d = new DirectoryInfo(temptxt);
long dirSize = DirSize(d);
if ((dirSize + fi.Length) <= 8388608)
fi.CopyTo(temptxt + "\\" + fi.Name, true);
else
break;
}
Затем после этого у меня есть два метода:
static void ProcessFile(string path) {/* ... */}
static void ApplyAllFiles(string folder, Action<string> fileAction)
{
foreach (string file in Directory.GetFiles(folder))
{
fileAction(file);
}
foreach (string subDir in Directory.GetDirectories(folder))
{
try
{
ApplyAllFiles(subDir, fileAction);
}
catch
{
// swallow, log, whatever
}
}
}
Используя эти два метода в моем методе должны получить все текстовые файлы из каталога документов и всех его подкаталогов ,
В моем методе я сделал:
ApplyAllFiles(t,ProcessFile(t);
Но это неправильный путь, чтобы использовать его. Как я могу использовать методы?
PSWG КИ и теперь, как я можешь использовать мой цикл, так как переменные текстовые файлы не выходить больше : for (int i = 0; i
DanielVest
@ DanielVest Предполагается, что 'textfiles' должен быть списком всех файлов, обработанных в' ApplyAllFiles'? –
p.s.w.g Я думаю ... textfiles - это строка [] должна содержать все файлы из ApplyAllFiles, но только текстовые файлы! – DanielVest