如何移动没有文件扩展名的文件?C#
文件如何移动没有文件扩展名的文件?C#,c#,file,io,C#,File,Io,文件test没有扩展名,我需要帮助将此文件移动或重命名为具有扩展名的文件没有扩展名对函数没有影响。 此外,重命名实际上只是“伪装”的一个动作,所以您要做的是 if (File.Exists(@"C:\\Users" + Environment.UserName + "\\Desktop\\test")) { /\
test
没有扩展名,我需要帮助将此文件移动或重命名为具有扩展名的文件没有扩展名对函数没有影响。
此外,重命名实际上只是“伪装”的一个动作,所以您要做的是
if (File.Exists(@"C:\\Users" + Environment.UserName + "\\Desktop\\test"))
{ /\
this file has no file extension
}
请记住字符串前面的@,因为您没有逃过反斜杠。您可以通过以下方式获得所有不带扩展名的文件:
File.Move(@"C:\Users\Username\Desktop\test", @"C:\Users\Username\Desktop\potato.txt")
现在,您可以循环它们并更改扩展名:
var files = Directory.EnumerateFiles(@"C:\Users\Username\Desktop\")
.Where(fn => string.IsNullOrEmpty(Path.GetExtension(fn)));
正如你所看到的,这是一个很大的帮助
更新:如果您只想更改您已经知道的单个文件的扩展名,它似乎已经给出了答案。无扩展名文件没有什么特别之处。您的代码被破坏,因为您使用字符串连接来构建路径,并且您将逐字和常规字符串文字语法混合在一起。为此使用适当的框架方法:
Path.Combine()
您还应使用适当的框架方法获取当前用户的桌面路径,请参阅:
然后可以调用File.Move()
重命名文件,请参见:
如果文件没有任何扩展名,应该不会有任何问题。请注意,您应该以
File.Exists的形式编写(@"
,否则各种“\”将被视为转义字符。@xanatos:问题很清楚,不是吗?他想找到没有扩展名的文件并给它们扩展名。至少我是这样理解的。@TimSchmelter他的问题的文本阅读不包括你写的任何内容。他写了文件测试没有扩展名,我需要帮助将此文件移动或重命名为具有扩展名的文件。我没有看到任何“我想查找所有没有扩展名的文件”或者类似的东西。@xanatos:我看得越久,我就越同意你的观点。我不知道为什么我这么清楚,他想改变一个或多个文件没有扩展名的事实。可能是因为今天有一个类似的问题,或者是因为我觉得很有趣。你可以用:目录枚举无扩展名的文件.EnumerateFiles(@“C:\Users\Username\Desktop\”,“*”)
@xanatos:这更简单,我不知道。我很惊讶这个主题在这方面没有任何问题。这似乎是这样的:如果您需要确定正确的扩展名,您可以查看一下(仅检测26种mime类型,但这只是一个开始)
foreach (string filePath in filPaths)
{
string fileWithNewExtension = Path.ChangeExtension(filePath, ".txt");
string newPath = Path.Combine(Path.GetDirectoryName(filePath), fileWithNewExtension);
File.Move(filePath, newPath);
}
string fullPath = Path.Combine(@"C:\Users", Environment.UserName, @"Desktop\test");
if(File.Exists(fullPath))
{
}
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string fullPath = Path.Combine(desktopPath, "test");
if(File.Exists(fullPath))
{
string newPath = fullPath + ".txt";
File.Move(fullPath, newPath);
}