| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1455 人关注过本帖
标题:text
只看楼主 加入收藏
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 4楼 TonyDeng
本掌柜牺牲形象,抛砖引玉,给热爱C语言的大侠们引出一个C语言小项目,希望可以有更多的人加入讨论,
结果很失败啊
2015-09-16 13:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
没挑战性啊

授人以渔,不授人以鱼。
2015-09-16 14:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
搂主解决问题了没有?

授人以渔,不授人以鱼。
2015-09-16 20:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把你的图片传一批上来,需要怎么改名(前面的XX是什么)说清楚。

授人以渔,不授人以鱼。
2015-09-16 21:36
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
问题解决了没有
2015-09-16 21:44
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:30 
批处理可以解决的,建个aaa.bat,拷贝下述代码,把这个文件和你要改名的图片文件放在一起,你可以在文件夹里直接双击,也可以用c里的system函数调用(
程序代码:
@echo off&setlocal enabledelayedexpansion
for %%b in (jpg) do (
if exist "*.%%b" (
set a=1
for /f "delims=" %%i in ('dir /a-d/b *.%%b') do (
if !a! lss 1000 (
if !a! lss 100 (
if !a! lss 10 (
set R1=000!a!
) else set R1=00!a!
) else set R1=0!a!
) else set R1=!a!
if not exist "XX!R1!.%%b" ren "%%i" "XX!R1!.%%b"
set /a a+=1
)))
exit
该批处理在xp下验证通过,可处理最多9999编号)。

能编个毛线衣吗?
2015-09-16 21:46
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
如果非要使用c的目录操作函数应该也不难,百度说都在dir.h、dos.h里,这大概都是tc里的库,不知道vc里能不能用。
还有一个变通办法可以system("dir *.jpg >aaa.txt"),这样将文件夹里所有jpg文件名重定向到一个文本文件里,再用c对这个文本文件操作,用ren改为自己需要的名字。

能编个毛线衣吗?
2015-09-16 21:50
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 14楼 TonyDeng
还没有,不过用其它法子批量改名了
图片附件: 游客没有浏览图片的权限,请 登录注册

..............................
..............................
..............................
图片附件: 游客没有浏览图片的权限,请 登录注册

2015-09-16 21:51
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 17楼 wmf2014
差不多我就是用这个思路设计C语言程序的,写到改名那,卡死到,脑子就是转不过来
2015-09-16 21:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:30 
程序代码:
#include "stdafx.h"

using namespace System;
using namespace System::IO;

int main(array<String^>^ args)
{
    array<String^>^ files = Directory::GetFiles(Directory::GetCurrentDirectory(), "*.*", SearchOption::TopDirectoryOnly);
    for each (String^ filename in files)
    {
        FileInfo^ file = gcnew FileInfo(filename);
        Console::WriteLine(file->Name);
        // file->MoveTo("新文件名");
    }

    Console::Write("Press any key to continue...");
    Console::ReadKey(true);
    return 0;
}


这是C++代码,看得懂就抄,看不懂还有用Win32 API的方法。前面用系统内部指令的也是一个办法,这就是我前面说你脑袋不灵光的原因,办法的确有许多,懂什么就用什么,难不倒人的。

文件改名就是那个被注释掉的MoveTo()方法。

[ 本帖最后由 TonyDeng 于 2015-9-16 22:12 编辑 ]

授人以渔,不授人以鱼。
2015-09-16 22:03
快速回复:text
数据加载中...
 
   



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

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