C#实现遍历本地名为Config文件夹,并获取所有文件夹的名字以及里面所有文件名为AutoBuildConfig.yaml文件中对应的releaseID和buildSystem的对应值,保存到数据库
时间: 2024-09-22 07:05:48 浏览: 41
在C#中,你可以使用`DirectoryInfo`, `FileInfo`, 和 `StreamReader` 来遍历目录并读取文件内容。首先,你需要连接数据库并设置好操作。这里是一个基本步骤:
1. **连接数据库**:
使用ADO.NET或Entity Framework等库来连接数据库(如SQLite, MySQL, SQL Server等)。假设你已经有一个`ConfigurationDbContext`的上下文类:
```csharp
using (var context = new ConfigurationDbContext())
{
// 数据库连接...
}
```
2. **遍历文件夹**:
使用`DirectoryInfo`类来获取`Config`文件夹的信息,并使用递归或`Directory.GetFiles`来获取所有`AutoBuildConfig.yaml`文件:
```csharp
void ProcessFiles(string path)
{
var directoryInfo = new DirectoryInfo(path);
foreach (var fileInfo in directoryInfo.GetFiles("*.yaml"))
{
ProcessFile(fileInfo.FullName);
}
foreach (var subDirectory in directoryInfo.GetDirectories())
{
ProcessFiles(subDirectory.FullName);
}
}
private void ProcessFile(string filePath)
{
// ...
}
```
3. **解析文件内容**:
对于每一个找到的`AutoBuildConfig.yaml`文件,使用`StreamReader`打开并读取内容。假设文件格式简单,可以直接字符串分割或正则表达式提取`releaseID`和`buildSystem`:
```csharp
string content;
using (var reader = new StreamReader(filePath))
{
content = reader.ReadToEnd();
}
var values = content.Split('\n');
int releaseID;
string buildSystem;
if (values.Length >= 2)
{
releaseID = Int32.Parse(values[0]);
buildSystem = values[1];
}
else
{
// 文件格式错误
}
```
4. **保存到数据库**:
将`releaseID`和`buildSystem`插入到数据库中:
```csharp
context.ConfigurationItems.Add(new ConfigurationItem { ReleaseId = releaseID, BuildSystem = buildSystem });
context.SaveChanges(); // 保证数据持久化
```
最后别忘了处理异常,确保程序健壮。完成上述步骤后,你应该能成功地从`Config`文件夹中获取`AutoBuildConfig.yaml`文件的内容并将信息保存到数据库。
```csharp
ProcessFiles(@"path_to_your_Config_folder");
```
阅读全文