C# 将.txt配置文件读入字符串?
我现在不得不尝试创建一种内务管理实用程序,我们可以设置要运行的预定任务 我已经将其硬编码为从特定文件夹中删除,它会删除所有超过7天的内容 我希望有一些灵活性,这样我就不必每次找到一个新的目录时都创建一个新的程序 我想要一个包含两行的configuration.txt文件,一行是查找和删除文件的目录,另一行是早于:x天的文件 我可以很好地阅读文件,只是不确定如何从文本文件创建字符串 下面是我目前的工作计划,它是非常基本的东西C# 将.txt配置文件读入字符串?,c#,arrays,string,readfile,delete-file,C#,Arrays,String,Readfile,Delete File,我现在不得不尝试创建一种内务管理实用程序,我们可以设置要运行的预定任务 我已经将其硬编码为从特定文件夹中删除,它会删除所有超过7天的内容 我希望有一些灵活性,这样我就不必每次找到一个新的目录时都创建一个新的程序 我想要一个包含两行的configuration.txt文件,一行是查找和删除文件的目录,另一行是早于:x天的文件 我可以很好地阅读文件,只是不确定如何从文本文件创建字符串 下面是我目前的工作计划,它是非常基本的东西 var files = new DirectoryInfo(@"
var files = new DirectoryInfo(@"c:\log").GetFiles("*.log")
foreach (var file in files)
{
if (DateTime.UtcNow - file.CreationTimeUtc > TimeSpan.FromDays(7))
{
File.Delete(file.FullName);
更多的信息会很好,但是像这样的东西例如:
// Read file lines as strings
string[] lines = System.IO.File.ReadAllLines(@"C:\path\to\file.txt");
foreach (string line in lines)
{
string[] segs = s.Split('\t');
string filename = segs[0];
string age = segs[1];
// call the relevant function for deleting files
doDeletion(filename, age);
}
这是假设您的文件具有以下格式:
foldername1 7
foldername2 14
其中文件夹名称和期限之间的间距为制表符
编辑:
现在注意到这个问题是针对一个文件的,该文件的行是foldername,后跟一行是age。。。在这种情况下,这将起到以下作用:
string[] lines = System.IO.File.ReadAllLines(@"C:\path\to\file.txt");
if (lines.Length >= 2)
{
string filename = lines[0];
string age = lines[1];
doDeletion(filename, age);
}
如果您希望它像现在这样简单:使用命令行参数
class Program
{
static void Main(string[] args)
{
string path;
int days;
if( args.Length < 2 ) return;
// ^^ You might want to throw some exception.
// Or print a "Usage" string.
path = args[0];
// TODO: validate path, bail out if invalid
if( !int.TryParse(args[1], out days) )
{
// handle parse error
}
// TODO: validate parsed value. I guess it shouldn't be negative or 0.
DoYourThing( path, days );
}
}
ConfigModel.cs
public class ConfigModel
{
public Item[] Items {get; set;}
}
public class Item
{
public string Path {get; set;}
public int Days {get; set;}
}
请阅读:
var config = System.Text.Json.JsonSerializer.Deserialize<ConfigModel>(File.ReadAllText(@".\config.json"));
显示计划内容的外观,并显示您当前如何读取文件!为什么不使用
app.config
这是否回答了您的问题@拉塞夫·卡尔森:我在回答中提出了这一点;)我从之前的页面开始:(我按住ctrl键并单击了一堆问题,然后进入会议:)回答得好:)
foreach( var item in config.Items )
{
DoYourThing(item.Path, item.Days);
}