मैं एक साधारण सी # कंसोल ऐप लिख रहा हूं जो sftp सर्वर पर फाइलें अपलोड करता है। हालाँकि, फ़ाइलों की मात्रा बड़ी है। मैं या तो अपलोड की गई फ़ाइलों का प्रतिशत या केवल अपलोड की जाने वाली फ़ाइलों की कुल संख्या से अपलोड की जाने वाली फ़ाइलों की संख्या प्रदर्शित करना चाहूंगा।
सबसे पहले, मैं सभी फ़ाइलों और फ़ाइलों की कुल संख्या प्राप्त करता हूं।
string[] filePath = Directory.GetFiles(path, "*");
totalCount = filePath.Length;
फिर मैं फ़ाइल के माध्यम से लूप करता हूं और उन्हें एक-एक करके फ़ॉरच लूप में अपलोड करता हूं।
foreach(string file in filePath)
{
string FileName = Path.GetFileName(file);
//copy the files
oSftp.Put(LocalDirectory + "/" + FileName, _ftpDirectory + "/" + FileName);
//Console.WriteLine("Uploading file..." + FileName);
drawTextProgressBar(0, totalCount);
}
फ़ॉरेस्ट लूप में मेरे पास एक प्रगति पट्टी है जिसके साथ मेरे पास समस्याएं हैं। यह ठीक से प्रदर्शित नहीं करता है।
private static void drawTextProgressBar(int progress, int total)
{
//draw empty progress bar
Console.CursorLeft = 0;
Console.Write("["); //start
Console.CursorLeft = 32;
Console.Write("]"); //end
Console.CursorLeft = 1;
float onechunk = 30.0f / total;
//draw filled part
int position = 1;
for (int i = 0; i < onechunk * progress; i++)
{
Console.BackgroundColor = ConsoleColor.Gray;
Console.CursorLeft = position++;
Console.Write(" ");
}
//draw unfilled part
for (int i = position; i <= 31 ; i++)
{
Console.BackgroundColor = ConsoleColor.Green;
Console.CursorLeft = position++;
Console.Write(" ");
}
//draw totals
Console.CursorLeft = 35;
Console.BackgroundColor = ConsoleColor.Black;
Console.Write(progress.ToString() + " of " + total.ToString() + " "); //blanks at the end remove any excess
}
उत्पादन 1943 में सिर्फ [] 0 है
मुझसे यहां क्या गलत हो रहा है?
संपादित करें:
मैं XML फ़ाइलों को लोड और निर्यात करते समय प्रगति बार प्रदर्शित करने का प्रयास कर रहा हूं। हालांकि, यह एक लूप से गुजर रहा है। इसके बाद पहला राउंड खत्म होने के बाद यह दूसरे और इतने पर जाता है।
string[] xmlFilePath = Directory.GetFiles(xmlFullpath, "*.xml");
Console.WriteLine("Loading XML files...");
foreach (string file in xmlFilePath)
{
for (int i = 0; i < xmlFilePath.Length; i++)
{
//ExportXml(file, styleSheet);
drawTextProgressBar(i, xmlCount);
count++;
}
}
यह पाश के लिए कभी नहीं छोड़ता ... कोई सुझाव?