用c获取获取文件名和后缀名
时间: 2024-05-15 20:19:16 浏览: 225
以下是用C语言获取文件名和后缀名的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char filename[100];
printf("请输入文件名:");
scanf("%s", filename);
char *dot = strrchr(filename, '.');
if (dot) {
printf("文件名为:%.*s\n", (int)(dot - filename), filename);
printf("后缀名为:%s\n", dot + 1);
} else {
printf("该文件没有后缀名。\n");
}
return 0;
}
```
在上面的代码中,我们首先使用`scanf`函数获取用户输入的文件名,然后使用`strrchr`函数查找文件名中最后一个`.`字符,如果存在,就将`.`字符后面的部分作为后缀名输出,否则输出“该文件没有后缀名”。注意,我们使用了`strrchr`函数而不是`strchr`函数,是因为后缀名通常出现在文件名的末尾,而`strrchr`函数从字符串的末尾开始查找。另外,我们使用了`%.*s`格式化字符串输出文件名,这是因为我们只需要输出文件名中`.`字符之前的部分,而不是整个字符串。
相关问题
C:\Users\Administrator\Desktop\TEST\1_0057429562_50060123.PDF获取最后的文件名并去掉后缀,并与C:\Users\Administrator\Desktop\TEST\2023-8-21\病历拼接起来,用python完成
要用Python获取文件名并去掉后缀,然后与另一个路径拼接起来,你可以使用以下代码:
import os
file_path = r'C:\Users\Administrator\Desktop\TEST\1_0057429562_50060123.PDF'
base_name = os.path.basename(file_path) # 获取文件名,包括后缀
file_name = os.path.splitext(base_name) # 去掉后缀
target_path = r'C:\Users\Administrator\Desktop\TEST\2023-8-21'
result_path = os.path.join(target_path, file_name) # 拼接路径
print(result_path)
这段代码首先导入了os模块,然后定义了文件路径file_path和目标路径target_path。接下来使用os.path.basename()函数获取文件名,包括后缀,并使用os.path.splitext()函数去掉后缀。最后使用os.path.join()函数拼接路径。最终的结果存储在result_path变量中,并通过print语句输出。
需要注意的是,文件路径中的反斜杠需要使用原始字符串(使用r前缀)或者双反斜杠(\\)表示,以避免转义字符的干扰。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [C# 怎么去掉文件名后缀](https://blog.csdn.net/weixin_35725654/article/details/112042397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [C++:从完整路径中提取文件名、不带后缀的名字、后缀名(转)](https://blog.csdn.net/weixin_42525096/article/details/109666686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
C#遍历指定目录获取当前目录下指定后缀(如txt和ini)的文件名
在C#中,如果你想获取特定目录下所有`.txt`和`.ini`文件的文件名,可以使用`Directory.GetFiles`方法结合过滤器来实现。以下是一个示例:
```csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string directoryPath = @"C:\YourDirectory"; // 替换为你要查询的实际目录
string[] extensions = { ".txt", ".ini" }; // 指定需要查找的文件扩展名
// 遍历目录,获取指定类型的文件名
GetFilesInDirectory(directoryPath, extensions);
Console.WriteLine("File names found:");
}
static void GetFilesInDirectory(string path, string[] extensions)
{
try
{
foreach (string ext in extensions)
{
// 获取该目录下所有指定后缀的文件
string[] filenames = Directory.GetFiles(path, "*." + ext, SearchOption.TopDirectoryOnly);
if (filenames.Length > 0)
Console.WriteLine(String.Join("\n", filenames));
}
}
catch (UnauthorizedAccessException)
{
Console.WriteLine($"Access denied to directory: {path}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
```
当你运行这个程序,它会在给定的目录中查找`.txt`和`.ini`文件,并将它们的文件名打印出来。
阅读全文