| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:【求助】用C打开文件的操作,请达人帮忙,多谢!
只看楼主 加入收藏
xalingdian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
【求助】用C打开文件的操作,请达人帮忙,多谢!
用C打开文件时,如果不确定文件名,可确定是txt格式的,如何实现,谢谢!
搜索更多相关主题的帖子: 如何 
2012-07-09 22:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
总得要有一个确定的文件名。

授人以渔,不授人以鱼。
2012-07-09 22:57
xalingdian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-9
收藏
得分:0 
应该有某种方法,用c或者C++我看到过这样的实现的成品(看不到代码),任意txt文档都 能打开。。。
2012-07-09 23:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那是列表文件名之后获得确切文件名再打开的。

授人以渔,不授人以鱼。
2012-07-09 23:03
xalingdian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-9
收藏
得分:0 
列表文件名,是扫描该目录下的所有相同类型的文件吧?
这个有函数实现吗?
2012-07-09 23:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
有API函数

授人以渔,不授人以鱼。
2012-07-09 23:10
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:10 
获得这个目录下的所有文件,检查每个文件的后缀,与"txt"匹配则打开这个文件。

My life is brilliant
2012-07-09 23:13
xalingdian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-9
收藏
得分:0 
思路是这样的,但是一时没有想到用什么方法实现较好,求进一步指导,多谢!
2012-07-09 23:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这是我以前发过的,你参照一下,根据自己的编译器修改吧:

程序代码:
//--------------------------------------
// 程序功能:調用Win32功能用通配符查找一批文件的文件名
//     說明:1.採用DOS通配符,即包含*和?號的文件,比如*.c是所有以.c為擴展名的文件,可帶路徑
//           2.用命令行指定文件樣式,若省略,默認為*.*
//           3.默認將結果輸出到控制臺,若用重定向,可輸出到文本文件,語法類如為test *.c > list.txt,即寫到list.txt上
//           4.獲得文件清單,可用數組循環處理(本例是寫到標準容器vector中,相當於文件名數組)
//           5.要獲取文件的其他屬性,可查閱MSDN中WIN32_FIND_DATA結構的內容
//           6.本程序使用寬字符以及安全版本的函數,然而用重定向輸出得到的文本文件是可以用Ansi模式讀入的
//--------------------------------------

#include <Windows.h>
#include <stdio.h>
#include <string.h>
#include <vector>

BOOL GetFileList(const wchar_t FileName[], std::vector<WIN32_FIND_DATAW>& FileList);

int wmain(int argc, wchar_t* argv[])
{
    wchar_t FileName[FILENAME_MAX];
    wcscpy_s(FileName, FILENAME_MAX - 1, (argc < 2) ? L"*.*" : argv[1]);

    std::vector<WIN32_FIND_DATAW> FileList;
    FileList.clear();                        // 清空集合,如果需要追加模式,重覆調用GetFileList()函數而不要再清空
    if (GetFileList(FileName, FileList))
    {
        for (std::vector<std::wstring>::size_type index = 0; index != FileList.size(); ++index)
        {
            _putws(FileList[index].cFileName);
        }
    }
    return 0;
}

// 獲取文件清單
// 備註:結果通過集合FileList返回,傳遞的是引用
BOOL GetFileList(const wchar_t FileName[], std::vector<WIN32_FIND_DATAW>& FileList)
{
    WIN32_FIND_DATAW FindFileData;            // 文件數據結構,類型聲明末尾為W表示是寬字符版本,若為A則是Ansi版本的
    HANDLE Handle;                            // 用於搜索文件的句柄,將此句柄供給FindNextFile()函數,文件信息儲存在上面結構中

    Handle = FindFirstFileW(FileName, &FindFileData);
    if (Handle != INVALID_HANDLE_VALUE)
    {
        do
        {
            FileList.push_back(FindFileData);
        } while (FindNextFileW(Handle, &FindFileData));
        return true;
    }
    else return false;
}

授人以渔,不授人以鱼。
2012-07-09 23:33
xalingdian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-7-9
收藏
得分:0 
非常感谢,我好好研究研究,得好好学习了!
2012-07-09 23:40
快速回复:【求助】用C打开文件的操作,请达人帮忙,多谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030022 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved