c# - 意外值计数字符串 C# 中的字符
问题描述
试图分析文件名与文件路径中的字符数。
鉴于这allfiles
是目录中的所有文件,我得到了一些意想不到的结果。在一种情况下,file.Length.ToString()
= 281 而fileName.Length.ToString()
= 288。文件名怎么可能包含比完整路径更多的字符?
string[] allfiles = Directory.GetFiles(@"directory", "*.*", SearchOption.AllDirectories);
new System.IO.StreamWriter(@"C:\Output.txt"))
{
foreach (string file in allfiles)
{
string fileName = System.IO.Path.GetFileName(file) + System.IO.Path.GetExtension(file);
string line = file.Replace(',', '?') + "," + file.Length.ToString() + "," + fileName.Length.ToString()+","+fileName;
output.WriteLine(line);
}
}
解决方案
我认为这可能更符合你想要做的事情:
foreach (string file in allfiles)
{
string fileName = System.IO.Path.GetFileName(file);
string line = file.Replace(',', '?') + ", " + file.Length.ToString() + ", " + fileName.Length.ToString() + "," + fileName;
output.WriteLine(line);
}
添加额外的扩展名会让你失去计数。
改变
string fileName = System.IO.Path.GetFileName(file) + System.IO.Path.GetExtension(file);
至
string fileName = System.IO.Path.GetFileName(file);
推荐阅读
- ios - 将隐私政策页面添加到 iOS 上的应用程序设置中
- arrays - 通过 SNMP Batch 从打印机获取碳粉量
- qt5 - Qt5.9.1 + CUDA8.0:随机崩溃
- oracle - 从两个表 oracle 更新
- html - 从我的 div 的两侧删除空格
- ios - 访问 layout.collectionViewContentSize 时 collectionView(_:layout:sizeForItemAt:) 中的异常
- javascript - 在 finally 块内进行清理,并在 try 块中返回 - 不好的做法?
- .htaccess - 重定向 301 无法正常工作
- html - HTML 电子邮件传单中缺少图像
- elasticsearch - 如何使用 grok 模式来匹配此日志?