我有一个包含多个文本文件的文件夹,我想阅读它们以获取某些行的内容,然后将该文件移动到" 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";
}
}
提前感谢您的帮助
答案 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;要将文件移动到的文件名。您获得异常的原因是,如果不包含您尝试移动文件和文件名的文件名。使用与备份文件夹相同的名称创建它。