c# - 获取文件路径,如果文件名中包含 ID,则将文件移动到其他目录中
问题描述
基本上,我需要检查文件是否存在于 4 版本中,这意味着文件名中出现 11 位数字代码。检查完成后,我需要将文件移动到另一台服务器上。
我的问题是我获得了 ID,并且我知道 ID 何时出现 4 次,但我不知道如何从获得的 ID 中获取文件路径,然后移动文件。
任何形式的帮助将不胜感激。
static void Main(string[] args)
{
string ExtractIDFromFileName(string filename)
{
return filename.Split('_').Last();
}
Dictionary<string, int> GetDictOfIDCounts()
{
List<string> allfiles = Directory.GetFiles("C:/Users/Desktop/Script/tiptop", "*.txt").Select(Path.GetFileNameWithoutExtension).ToList();
allfiles.AddRange(Directory.GetFiles("C:/Users/Desktop/Script/tiptop", "*.top").Select(Path.GetFileNameWithoutExtension).ToList());
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (var x in allfiles)
{
string fileID = ExtractIDFromFileName(x);
if (dict.ContainsKey(fileID))
{
dict[fileID]++;
}
else
{
dict.Add(fileID, 1);
}
}
return dict;
}
var result = GetDictOfIDCounts();
foreach (var item in result)
{
//Console.WriteLine("{0} > {1}", item.Key, item.Value);
if (item.Value == 4)
{
//When we know that those ID appear 4 times, I need to grab back the FilePath and then move the files in an other DIR.
Console.WriteLine("{0} > {1}", item.Key, item.Value);
}
}
Console.ReadLine();
}
解决方案
您将要使用 File.Move:https ://docs.microsoft.com/en-us/dotnet/api/system.io.file.move?view=netframework-4.7.2
这很简单。将字典中的 ID 设为源文件的完整路径,然后 File.Move(dict.Key, some-variable-holding-the-new-directory-and-file-name);
由于您将要使用文件路径,因此只需切换到使用 Directory & File 的实例版本: DirectoryInfo & FileInfo:
代替
List<string> allfiles = Directory.GetFiles("C:/Users/Desktop/Script/tiptop", "*.txt").Select(Path.GetFileNameWithoutExtension).ToList();
和
DirectoryInfo di = new DirectoryInfo("C:/Users/Desktop/Script/tiptop");
var allFiles = di.GetFiles("*.txt");
使 FileInfo 成为字典的键。然后你可以做类似的事情
dict.Key.FullName
推荐阅读
- javascript - 如何使用 jQuery 从输入中删除选中的属性
- html - 我如何从下一个 img 标签设置 div 高度?
- java - 如何以 Struts 2 所需的形式上传文件
- c++ - qt 做昂贵的操作会破坏样式表
- dji-sdk - DJI Onboardsdk 无法自动起飞
- sql - 用于进行数字比较的转换/过滤字符串
- git - Git 连接被 Git 克隆拒绝。如何使用正确的凭据重新连接
- python - Taking input for dictionary in python
- javascript - 第一个 AdSense 广告随机展示(异步)
- python - 如何将一个文本文件中的多列替换为另一个文本文件中的列?