Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何读取文件夹中的所有CSV_C#_System.io.fileinfo - Fatal编程技术网

C# 如何读取文件夹中的所有CSV

C# 如何读取文件夹中的所有CSV,c#,system.io.fileinfo,C#,System.io.fileinfo,我有一段代码,我可以在其中读取CSV文件,然后我的代码将CSV文件中的帐户转换为IBAN帐户 不知怎的,这给了我一个错误: using (var client = new WebService.BANBICSoapClient("IBANBICSoap")) { StreamReader sr = new StreamReader(@"C:\CSV\test.csv"); StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.cs

我有一段代码,我可以在其中读取CSV文件,然后我的代码将CSV文件中的帐户转换为IBAN帐户

不知怎的,这给了我一个错误:

using (var client = new WebService.BANBICSoapClient("IBANBICSoap"))
{
    StreamReader sr = new StreamReader(@"C:\CSV\test.csv");
    StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.csv");
    while (sr.Peek() >= 0)
    {
        string line = sr.ReadLine();
        try
        {
            string[] rowsArray = line.Split(';');
            line = string.Empty;
            string account = rowsArray[0];
            string rel = rowsArray[1];
            string res = acc;
            string rest = acct;
            if (resultIBAN != string.Empty && resultBIC != string.Empty)
            {
                line = account + ";" + res +";" + rest + ";" + rel;
            }

            else
            {
                line = account + ";" + "0" + ";" + "0" + ";" + rel;
            }
        }
        catch (Exception msg)
        {
            Console.WriteLine(msg);
        }
        sw.WriteLine(line) ;
    }
    sr.Close();
    sw.Close();
}
}

给你的读者和作家

StreamReader sr = new StreamReader(@"C:\CSV\test.csv");
StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.csv");
您可以将其放在一个方法中:

private void ConvertToIBANAccount(string fileName,string outFileName)
{
    using (var client = new WebService.BANBICSoapClient("IBANBICSoap"))
        {
            StreamReader sr = new StreamReader(fileName);
            StreamWriter sw = new StreamWriter(outFileName);
            Console.WriteLine("Bezig met converteren....");
            while (sr.Peek() >= 0) 
            {
            string line = sr.ReadLine(); 
                try
                {
                    string[] rowsArray = line.Split(';');
                    line = string.Empty;
                    string account = rowsArray[0];
                    string relationID = rowsArray[1];
                    string resultIBAN = client.BBANtoIBAN(account);
                    string resultBIC = client.BBANtoBIC(account);
                    if (resultIBAN != string.Empty && resultBIC != string.Empty)
                    {
                        line = account + ";" + resultIBAN +";" + resultBIC + ";" + relationID;
                    }

                    else
                    {
                        line = account + ";" + "0" + ";" + "0" + ";" + relationID;
                    }
                }
                catch (Exception msg)
                {
                    Console.WriteLine(msg);
                }
            sw.WriteLine(line) ;

            }
            sr.Close();
            sw.Close();
        }
        Console.WriteLine("Conversie succesvol");
        Console.ReadLine();
    }
}
然后查找扩展名为.csv的每个文件

string[] files = Directory.GetFiles(yourDirectoryName, "*.csv");
files.ToList().ForEach(f => ConvertToIBANAccount(f,"temp" + f));

您可以像这样读取所有csv文件

var filePaths = Directory.GetFiles(@"\\Pontos\completed\", "*_*.csv")
foreach(string s in filePaths)
{
    using (StreamReader sr = new StreamReader(s))
    {
           //perform task related file 
    }
}

像这样做

List<string> filesList = Directory.GetAllFiles("*.csv", FolderLocationToSearch).ToList();
foreach(var fileName in fileList)
{
    ConvertToIBANfromCSV(fileName);
}


public static void ConvertToIBANfromCSV(string fileName)
using (var client = new WebService.BANBICSoapClient("IBANBICSoap"))
        {
            StreamReader sr = new StreamReader(fileName);
            StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.csv");
            Console.WriteLine("Bezig met converteren....");
            while (sr.Peek() >= 0) 
            {
            string line = sr.ReadLine(); 
                try
                {
                    string[] rowsArray = line.Split(';');
                    line = string.Empty;
                    string account = rowsArray[0];
                    string relationID = rowsArray[1];
                    string resultIBAN = client.BBANtoIBAN(account);
                    string resultBIC = client.BBANtoBIC(account);
                    if (resultIBAN != string.Empty && resultBIC != string.Empty)
                    {
                        line = account + ";" + resultIBAN +";" + resultBIC + ";" + relationID;
                    }

                    else
                    {
                        line = account + ";" + "0" + ";" + "0" + ";" + relationID;
                    }
                }
                catch (Exception msg)
                {
                    Console.WriteLine(msg);
                }
            sw.WriteLine(line) ;

            }
            sr.Close();
            sw.Close();
        }
        Console.WriteLine("Conversie succesvol");
        Console.ReadLine();
    }
List filesList=Directory.GetAllFiles(“*.csv”,FolderLocationToSearch.ToList();
foreach(文件列表中的var文件名)
{
ConvertToIBANfromCSV(文件名);
}
公共静态void ConvertToIBANfromCSV(字符串文件名)
使用(var client=new WebService.BANBICSoapClient(“IBANBICSoap”))
{
StreamReader sr=新的StreamReader(文件名);
StreamWriter sw=新的StreamWriter(@“C:\CSV\testOut.CSV”);
Console.WriteLine(“Bezig-met转换器…”);
而(sr.Peek()>=0)
{
字符串行=sr.ReadLine();
尝试
{
string[]rowsArray=line.Split(“;”);
line=string.Empty;
string account=rowsArray[0];
字符串relationID=rowsArray[1];
字符串resultIBAN=client.BBANtoIBAN(account);
字符串resultBIC=client.BBANtoBIC(account);
if(resultban!=string.Empty&&resultBIC!=string.Empty)
{
行=帐户+”;“+resultIBAN+”;“+resultBIC+”;“+relationID;
}
其他的
{
行=帐户+”;“+”0“+”;“+”0“+”;“+关系ID;
}
}
捕获(异常消息)
{
控制台写入线(msg);
}
西南写入线(行);
}
高级关闭();
sw.Close();
}
Console.WriteLine(“转换成功卷”);
Console.ReadLine();
}

如果我手工编写代码时出现语法错误,请原谅。

查找文件夹中的所有文件并对其应用更改是高中生的一个主题。如果你能理解其中的逻辑,你为什么要处理与银行和货币有关的事情?如果我是你,我会非常害怕。@Marijke你不能使用循环有什么原因吗?仅供参考,这段代码中有一个额外的右括号。文件路径被传递到方法中,如我的answerfiles.ToList()的最后一行所示。ForEach(f=>ConvertToIBANAccount(f,f.Replace(“.csv”,“temp.csv”));要删除斜杠,您可以执行类似的操作。如果无法找到好的替代方法,请进行替换。