移动文件夹中的文本文件c#

时间:2017-03-15 13:40:49

标签: c#

我有一个包含多个文本文件的文件夹,我想阅读它们以获取某些行的内容,然后将该文件移动到" backup"文件夹中。

我的"备份的路径"文件夹是:

  

\ SRVWEB001 \ spool_interface \ PVCHARGE \备份\

包含我的文本文件的路径:

  

\ SRVWEB001 \ spool_interface \ PVCHARGE \ UTS600 \

我设法读取文件的行并将它们存储在List中,但是当我想在" backup"中复制我的文本文件时文件夹我无法复制它们因为我有这个错误:"无法创建现有文件。" (System.IO.IO异常),但文件夹中尚不存在我的文件..

这是我的代码:

        [WebMethod]
    public string enTete()
    {
        // Stocke une à une les lignes du fichier
        List<string> allLines = new List<string>();
        // Stocke l'en-tête
        List<string> enTete = new List<string>();

        // Chemin du dossier contenant les fichiers 
        string dirPath = @"\\SRVWEB001\spool_interface\PVCHARGE\UTS600\";
        DirectoryInfo d = new DirectoryInfo(dirPath);

        // Si il existe des fichiers txt dans le dossier
        if (Directory.GetFiles(dirPath, "*.txt").Length != 0)
        {
            // Pour chaque fichier 
            foreach (var fichier in d.GetFiles("*.txt"))
            {
                // Lis le fichier 
                using (FileStream fs = fichier.OpenRead())
                {
                    byte[] b = new byte[fs.Length];
                    int counter = 0;
                    string line;
                    StreamReader file = new StreamReader(fs, System.Text.Encoding.GetEncoding("iso-8859-1"));

                    // Récupération de chaque ligne dans la List<string> allLines
                    while ((line = file.ReadLine()) != null)
                    {
                        allLines.Add(line);
                        counter++;
                    }

                    // Fermeture du fichier
                    file.Close();

                    // Dossier "Backup"
                    string backupPath = @"\\SRVWEB001\spool_interface\PVCHARGE\Backup\";
                    DirectoryInfo d2 = new DirectoryInfo(backupPath);

                    // Fichier à déplacer
                    string filePath = dirPath + fichier.ToString();

                    if (Directory.Exists(dirPath))
                    {
                        string[] files = Directory.GetFiles(dirPath);

                        foreach (string s in files)
                        {
                            // Déplace le fichier dans le dossier "Backup"
                            File.Move(s, backupPath);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Source path does not exist!");
                    }

                    // Récupération des colonnes de l'en-tête dans un tableau (correspond à la ligne 105)
                    char[] separator = new char[] { '\t' };
                    string[] colonnes = allLines[105].Split(separator, StringSplitOptions.None);

                    // Affichage des colonnes
                    return colonnes[0]+" "+colonnes[1]+" "+colonnes[2]+" "+colonnes[3]+" "+colonnes[4]+" "+colonnes[5]+" "+colonnes[6] + " " +colonnes[7] + " " +colonnes[8] + " " +colonnes[9]+" "+ colonnes[10] + " " + colonnes[11] + " " + colonnes[12] + " " + colonnes[13] + " " + colonnes[14];
                }
            }

            return "Succès";
        }
        else
        {
            return "Pas de fichier texte";
        }

    }

提前感谢您的帮助

2 个答案:

答案 0 :(得分:3)

您需要为File.Move提供文件名 - 而不是直接名称。而不是:

package demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Configuration
@EnableAutoConfiguration
@ComponentScan({"demo","controller"})


public class EducationProjectApplication {

    public static void main(String[] args) {
        SpringApplication.run(EducationProjectApplication.class, args);
    }
}

File.Move(s, backupPath);

答案 1 :(得分:0)

File.Move的第二个参数需要是路径&amp;要将文件移动到的文件名。您获得异常的原因是,如果不包含您尝试移动文件和文件名的文件名。使用与备份文件夹相同的名称创建它。