我需要重命名多个CSV文件名。我想删除“ - ”之后的所有内容,例如“File-1.csv”将变为“File.csv”。这是我的代码不起作用:
DirectoryInfo d = new DirectoryInfo(@"C:\folder");
FileInfo[] infos = d.GetFiles();
foreach (FileInfo f in infos)
{
File.Move(f.FullName, f.FullName.ToString().Substring(0, f.LastIndexOf('-')));
}
我收到了这个错误:
错误2'System.IO.FileInfo'不包含'LastIndexOf'的定义,并且没有可以找到接受类型'System.IO.FileInfo'的第一个参数的扩展方法'LastIndexOf'(你是否错过了使用指令或程序集引用?)
我该如何解决这个问题?
答案 0 :(得分:1)
您当前的代码无法编译,因为当您在.LastIndexOf()
上调用FileInfo
对象时,您正在FileInfo.FullName
对象上调用foreach (FileInfo f in infos)
{
// Get the extension string from the existing file
var extension = f.FullName.Substring(f.FullName.LastIndexOf('.'), f.FullName.Length - 1);
// Get the filename, excluding the '-' as well as the extension
var filename = f.FullName.SubString(0, f.FullName.LastIndexOf('-'));
// Concatenate the filename and extension and move the file
File.Move(f.FullName, String.Format("{0}{1}", filename, extension));
}
。您的子字符串也会从文件名字符串中删除扩展名,我认为您并不想要。这是一个保留扩展名的解决方案:
$(".js-data-example-ajax").select2({
ajax: {
url: "http://localhost:8081/pruebas/select2/examples/jsondata.php",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
});
答案 1 :(得分:0)
我收到此错误:
错误2&#39; System.IO.FileInfo&#39;不含 &#39; LastIndexOf&#39;
的定义
f
不是字符串;尝试f.FullName.LastIndexOf ...