J'essaie d'ajouter des détails FileInfo à mon fichier XML en analysant et en collectant récursivement les fichiers. Cependant, j'ai un peu de mal et je ne suis pas sûr de savoir comment résoudre ce problème.Surcharge Stack.Push?
Voici mon code:
public static class ScanAndSerialize
{
public static void Serialize()
{
List<string> dirs = FileHelper.GetFilesRecursive(@"s:\project\");
XmlSerializer SerializeObj = new XmlSerializer(dirs.GetType());
string sDay = DateTime.Now.ToString("MMdd");
string fileName = string.Format(@"s:\project\{0}_file.xml", sDay);
TextWriter WriteFileStream = new StreamWriter(fileName);
SerializeObj.Serialize(WriteFileStream, dirs);
WriteFileStream.Close();
}
}
static class FileHelper
{
public static List<string> GetFilesRecursive(string b)
{
List<string> result = new List<string>();
Stack<string> stack = new Stack<string>();
stack.Push(b);
while (stack.Count > 0)
{
string dir = stack.Pop();
try
{
result.AddRange(Directory.GetFiles(dir, "*.*"));
foreach (string dn in Directory.GetDirectories(dir))
{
DirectoryInfo dirInfo = new DirectoryInfo(@"s:\project\");
dirInfo.Name.ToString();
dirInfo.Attributes.ToString();
dirInfo.CreationTime.ToString();
dirInfo.Exists.ToString();
dirInfo.LastAccessTime.ToString();
dirInfo.LastWriteTime.ToString();
stack.Push(dn);
}
}
catch
{
}
}
return result;
}
}
}
Ok où je rencontre une erreur est où je suis en train de prendre la dirInfo.Name.ToString() et les autres lignes de code et en quelque sorte incorporer ceux-ci dans le rendu de mon fichier XML avec ces détails. L'erreur est que Push ne peut pas être surchargé car j'ai essayé:
stack.Push(dn, dirInfo.Name.ToString(), dirInfo.Attributes.ToString().....)
Quelqu'un a des idées? Est-ce que je fais cela en arrière?
ok j'ai essayé cette méthode et j'obtiens une erreur -> Une variable locale nommée 'dirInfo' ne peut pas être déclarée dans cette portée b/c elle donnerait un sens à 'dirInfo' qui est déjà utilisé dans un 'parent ou courant «portée à désigner autre chose. – yeahumok
@yhumhumok: Cela signifie que vous avez déclaré une variable avec le même nom deux fois. Je suppose que vous êtes nouveau à C#? –
très nouveau et je le trouve extrêmement frustrant !!! – yeahumok