C#文件交互
C#文件,弹出文件夹,筛选指定类型内容,获取选中内容的绝对路径
带文件过滤器,若需要显示全部则形参传入空值;
`
public string filterBuilder(string filter)
{
string input = filter;
// 将字符串拆分成单独的扩展名
string[] extensions = input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// 构建文件过滤器字符串
StringBuilder filterBuilder = new StringBuilder();
foreach (string extension in extensions)
{
string description = extension.ToUpper().Substring(1) + " files (*" + extension + ")|*" + extension;
filterBuilder.Append(description).Append("|");
}
// 删除末尾的竖线
if (filterBuilder.Length > 0)
{
filterBuilder.Length--; // 删除最后一个字符
}
return filterBuilder.ToString();
}
//弹出对话框,设置过滤器,获取选中文件的指定路径
using (var dialog = new OpenFileDialog())
{
dialog.Filter = filterBuilder(uiComboBox1.SelectedItem.ToString());
dialog.Multiselect = true;
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK && dialog.FileNames.Length > 0)
{
foreach (string file in dialog.FileNames)
{
uiListBox1.Items.Add(file);
}
}
}
`
C#先指定的文件中以追加形式写入文件,附加具体时间信息
` static void Main()
{
string logFilePath = "your_log_file_path.log";
// 确保文件存在,如果不存在则创建新文件
if (!File.Exists(logFilePath))
{
File.Create(logFilePath).Close();
}
// 以追加模式打开文件流
using (StreamWriter writer = File.AppendText(logFilePath))
{
// 获取当前时间
DateTime currentTime = DateTime.Now;
// 格式化时间信息
string formattedTime = currentTime.ToString("yyyy-MM-dd HH:mm:ss");
// 写入带时间信息的日志
writer.WriteLine(formattedTime + " - Your log message here");
}
}`
传入路径若不存在此路径则创建路径
if(!Directory.Exist(Path)) { Directory.CreateDirectory(Path); }
使用递归将一个文件夹下的所有内容拷贝到另一个文件夹下
`
public void CopyAssembley(string sourceDir, string destDir)
{
DirectoryInfo sourceDirectoryInfo = new DirectoryInfo(sourceDir);
DirectoryInfo destDirectoryInfo = new DirectoryInfo(destDir);
if (!destDirectoryInfo.Exists)
{
destDirectoryInfo.Create();
}
foreach (FileInfo file in sourceDirectoryInfo.GetFiles())
{
string targetFilePath = Path.Combine(destDir, file.Name);
file.CopyTo(targetFilePath, true);
}
// 递归复制所有子文件夹
foreach (DirectoryInfo subDirectory in sourceDirectoryInfo.GetDirectories())
{
string newDestinationDir = Path.Combine(destDir, subDirectory.Name);
CopyAssembley(subDirectory.FullName, newDestinationDir);
}
}
`