Jusqu'à présent, j'ai écrit un code pour télécharger un fichier à partir du serveur ftp, puis en utilisant une tierce partie dll (informations sur les médias) pour obtenir les détails des métadonnées sur le fichier. Jusqu'à ce que ce soit bon, maintenant j'essaie de générer le fichier xml basé sur ma sortie, j'ai vu de grands exemples ici How can I build XML in C#? pour générer xml mais mon scénario est un peu différent, c'est pourquoi j'ai créé ce fil.générer le fichier xml à partir de la sortie
ci-dessous est le code pour obtenir les propriétés valeur du fichier jpg
static void Main(string[] args)
{
try
{
string file = "test.jpg";
FtpWebRequest reqFTP;
string ftpserverIp = "1.0.0.1";
string fileName = @"c:\downloadDir\" + file;
FileInfo downloadFile = new FileInfo(fileName);
FileStream outputStream = new FileStream(fileName, FileMode.Append);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpserverIp + "/" + file));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.KeepAlive = false;
reqFTP.Timeout = -1;
reqFTP.UsePassive = true;
reqFTP.Credentials = new NetworkCredential("sh", "SE");
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
// reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
int bufferSize = 4096;
int readCount;
byte[] buffer = new byte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize);
Console.WriteLine("Connected: Downloading File");
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
Console.WriteLine(readCount.ToString());
}
ftpStream.Close();
outputStream.Close();
response.Close();
Console.WriteLine("Downloading Complete");
var message = new StringBuilder();
ConsoleApplication2.Program TechMeta = new ConsoleApplication2.Program();
TechMeta.PutMessage(file, message);
Console.WriteLine(message);
}
catch (Exception ex)
{
Console.Write(ex);
}
}
private void PutMessage(string filename, StringBuilder message)
{
//Check the file is video or Image file here
string extension =".jpg";
bool b;
if (b = filename.Contains(extension))
{
HowToUse_Dll.ImageInterrogator imageInterrogator = new HowToUse_Dll.ImageInterrogator();
imageInterrogator.LoadFile(filename);
message.AppendFormat(messageFormat, "Width", imageInterrogator.GetWidth(), Environment.NewLine);
message.AppendFormat(messageFormat, "Height", imageInterrogator.GetHeight(), Environment.NewLine);
message.AppendFormat(messageFormat, "FileSize", imageInterrogator.GetFileSize(), Environment.NewLine);
message.AppendFormat(messageFormat, "FileFormat", imageInterrogator.GetFileFormat(), Environment.NewLine);
message.AppendFormat(messageFormat, "Resolution", imageInterrogator.GetResolution(), Environment.NewLine);
}
else
{
HowToUse_Dll.VideoInterrogator videoInterrogator = new HowToUse_Dll.VideoInterrogator();
videoInterrogator.LoadFile(filename);
message.AppendFormat(messageFormat, "FileSize", videoInterrogator.GetFileSize(), Environment.NewLine);
message.AppendFormat(messageFormat, "Duration", videoInterrogator.GetDuration(), Environment.NewLine);
message.AppendFormat(messageFormat, "AspectRatio", videoInterrogator.GetAspectRatio(), Environment.NewLine);
message.AppendFormat(messageFormat, "GetAspectRatio", videoInterrogator.GetAspectRatio(), Environment.NewLine);
message.AppendFormat(messageFormat, "BitRate", videoInterrogator.GetBitRate(), Environment.NewLine);
message.AppendFormat(messageFormat, "Format", videoInterrogator.GetFormat(), Environment.NewLine);
message.AppendFormat(messageFormat, "VideoCoder", videoInterrogator.GetVideoCoder(), Environment.NewLine);
message.AppendFormat(messageFormat, "Redirector", videoInterrogator.GetRedirector(), Environment.NewLine);
message.AppendFormat(messageFormat, "TargetPlayback", videoInterrogator.GetTargetPlayback(), Environment.NewLine);
}
}
public string messageFormat
{
get
{
return "{0}: {1}{2}";
}
}
base de
sur le fichier test.jpg il, TechMeta.PutMessage (fichier, message); valeur du message sont
{Width: 1024
Height: 576
FileSize: 84845
FileFormat: JPEG
Resolution: 8
}
Maintenant essaie de générer un fichier xml en fonction de la valeur comme ci-dessous, plus important encore je essaie de joindre basé sur le nouveau fichier comme ci-dessous
<image Name="test.jpg">
<width>1024</width>
<height>576</height>
<file-Size>84845</file-Size>
<resolution>8</resolution>
<image Name="test1.jpg">
<width>1024</width>
<height>576</height>
<file-Size>84845</file-Size>
<resolution>8</resolution>
Toute suggestion s'il vous plaît
Qu'avez-vous essayé? Nous ne sommes pas ici pour écrire votre code pour vous. Si vous êtes coincé, nous pouvons vous aider, mais vous devez nous dire quel est exactement votre problème. – svick
@svick ne m'attends pas à ce que quelqu'un écrive un code pour moi, j'attends quelqu'un pour suggérer le meilleur ou le meilleur moyen de générer xml depuis ma sortie, par exemple générer un fichier xsd ou utiliser xmldocument etc. bcoz ne pas utiliser beaucoup ou expert en xml C'est pourquoi j'ai jeté cette question ici – Usher
Vous demandez une "meilleure façon", mais vous ne dites pas mieux que quoi. Essayez-le d'abord vous-même et demandez-nous si cela ne fonctionne pas ou si vous pensez qu'il doit y avoir un meilleur moyen. De plus, votre XML n'est pas valide, vous ne fermez jamais les éléments '' et le XML semble avoir plusieurs éléments racine. –
svick