如何移动没有文件扩展名的文件?C#.


if (File.Exists(@"C:\Users" + Environment.UserName + "\Desktop\test"))
{                                                                /
                                               this file has no file extension
}          

文件test没有扩展名,我需要帮助才能将该文件移动或重命名为具有扩展名的文件

没有扩展与函数无关。另外,重命名实际上只是"变相"的举动,所以你想做的是

File.Move(@"C:UsersUsernameDesktoptest", @"C:UsersUsernameDesktoppotato.txt")

请记住字符串前的 @,因为您没有逃脱反斜杠。

无扩展名文件没有什么特别之处。您的代码已损坏,因为您使用字符串串联来构建路径,并且您正在混合逐字和常规字符串文本语法。为此使用正确的框架方法:Path.Combine()

string fullPath = Path.Combine(@"C:Users", Environment.UserName, @"Desktoptest");
if(File.Exists(fullPath))
{
}

还应使用正确的框架方法来获取当前用户的桌面路径,请参阅如何在 C# 中获取当前用户的桌面路径?:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string fullPath = Path.Combine(desktopPath, "test");

然后可以调用 File.Move() 来重命名文件,请参阅在 C# 中重命名文件:

if(File.Exists(fullPath))
{
    string newPath = fullPath + ".txt";     
    File.Move(fullPath, newPath);
}

您可以通过以下方式获取所有不带扩展名的文件:

var files = Directory.EnumerateFiles(@"C:UsersUsernameDesktop")
    .Where(fn => string.IsNullOrEmpty(Path.GetExtension(fn)));

现在您可以循环它们并更改扩展名:

foreach (string filePath in filPaths)
{
    string fileWithNewExtension = Path.ChangeExtension(filePath, ".txt");
    string newPath = Path.Combine(Path.GetDirectoryName(filePath), fileWithNewExtension);
    File.Move(filePath, newPath);
}

如您所见,Path类是一个很大的帮助。


更新:如果您只想更改您已经知道的单个文件的扩展名,那么 Dasanko 似乎已经给出了答案。

相关内容

  • 没有找到相关文章

最新更新