我正在做一个读取销售文件的程序,另一个读取库存的程序,所有程序都在csv扩展名中。这两个文件都位于同一位置“ C:\ LOCAL_DOWNLOAD”。
首先,系统在SQL Server中查找状态为“ Listado-Descargado”的表,然后读取销售文件的名称,然后将csv文件修改为另一种格式并保存在另一表中。
除了库存文件,我需要做同样的工作。但是,系统会读取所有csv文件,包括销售文件。是否可以通过部分名称读取csv文件的格式?
销售文件以以下格式开头:“ Poti_L6_2019-06-07” 库存文件以以下格式开头:“ Open25_Stock_Date ..”
我尝试使用getfiles方法来获取库存文件的部分名称。但这不起作用。
此外,我已经检查了流读取器是否读取了csv文件,并且它可以正常工作,但是我需要对所有库存文件进行相同的操作。
1) //Sales files
sqlConnection = new SqlConnection(CNN);
command = new SqlCommand();
appendLog("699 - Starting StreamREader " + DateTime.Now.ToString("G")+"\r\n");
//using (var reader = new StreamReader(@"C:\666.csv"))
appendLog("701 - Iniciando transformacion del csv " + DateTime.Now.ToString("G") + "\r\n");
appendLog("702 - Transformacion del csv - "+ @LOCAL_DOWNLOAD + "\\" + ds.Tables[0].Rows[i][0].ToString().Replace(" ", "").Replace("/shared", "") + "\r\n");
using (var reader = new StreamReader(@"C:\Proyecto SFTP -SQL-Pedidos_Poti\LOCAL_DOWNLOAD\" + ds.Tables[0].Rows[i][0].ToString().Replace(" ", "").Replace("/shared", "")))
{
appendLog("705 - Before while " + DateTime.Now.ToString("G") + "\r\n");
while (!reader.EndOfStream)
{
Console.WriteLine("ENTRE AL WHILE");
try
{
appendLog("708 - Starting StreamREader " + DateTime.Now.ToString("G") + "\r\n");
string line = reader.ReadLine();
Console.WriteLine("Linea es.. " + line);
// ----------------然后在此处更改csv的格式并插入另一个表中。
// Stock Method
param = new SqlParameter("@SQL", "SELECT Archivo FROM [dbo].[T001_FTP_ESTADO_DOWNLOAD] WHERE [BAJA-SUBA] = 'Listado-Descargado' AND Archivo like '%Open25%'");
param.Direction = ParameterDirection.Input;
param.DbType = DbType.String;
command.Parameters.Add(param);
adapter = new SqlDataAdapter(command);
adapter.Fill(ds);
sqlConnection.Close();
for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
try
{
appendLog("949-Selecciono los que empiezen con
OPEN25_STOCK " + DateTime.Now.ToString("G") + " : " +
ds.Tables[0].Rows[i][0].ToString().Replace(" ", "") + " successed" + "
/ Start \r\n");
String Fecha_Stock = "";
String Sucursal = "";
String Cod_Art = "";
String Ean = "";
String Stock_Actual = "";
String Art_En_Promocion = "";
String Fecha_Inicio_Promo = "";
String Fecha_Fin_Promo = "";
Boolean BFecha_Stock;
Boolean B_Sucursal;
Boolean BCod_Art;
Boolean BEan;
Boolean BStock_Actual;
Boolean BArt_En_Promocion;
Boolean BFecha_Inicio_Promo;
Boolean BFecha_Fin_Promo;
sqlConnection = new SqlConnection(CNN);
command = new SqlCommand();
string[] directorio =
Directory.GetFiles("C:\\Proyecto SFTP -SQL-
Pedidos_Poti\\LOCAL_DOWNLOAD\\" + "Open25_Stock");
string filecontent = string.Empty;
string parcial = "Open25_Stock_L6";
foreach (string file in directorio)
{
//string fileContent = reader.ReadToEnd();
StreamReader sr = new StreamReader("C:\\Proyecto SFTP -SQL-
Pedidos_Poti\\LOCAL_DOWNLOAD\\");
string data = sr.ReadLine();
string fileContent = sr.ReadToEnd();
Console.WriteLine(data);
}
答案 0 :(得分:1)
您可以使用Directory.GetFiles获得经过过滤的路径列表。
这里是一个例子:
StreamReader
请注意,第二个参数是带有静态文本标识符后的所有内容的通配符的文件名,然后将文件传递到string[] directorio
。
这将为您提供每个库存文件(销售文件除外)的完整路径的字符串数组。
进一步说明(当您是新用户时)。我认为这段代码将代替您{{1}}