首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >编号文件重命名算法

编号文件重命名算法
EN

Stack Overflow用户
提问于 2012-02-15 08:33:45
回答 1查看 515关注 0票数 0

问题标记为ASP经典,但算法解决方案是可以的。

我有以下一组按顺序编号的文件:

1.jpg,2.jpg,3.jpg,4.jpg .X.jpg

我需要一个函数,它将接受两个文件名,即fromFile和toFile参数,并且需要重命名所有需要的文件,以便from文件按toFile之前的顺序移动,在重新编号之间的文件被重命名。

示例:

将1.jpg移动到4.jpg应执行以下操作:

将1.jpg重命名为1.jpg.temp

  • rename 2.jpg到1.jpg

  • 重命名3.jpg到2.jpg

  • 重命名1.jpg.temp到3.jpg

  • 文件不受操作

F 211的影响

将4.jpg移动到2.jpg应执行以下操作:

将4.jpg重命名为4.jpg.tmp

  • rename 3.jpg到4.jpg

  • 重命名2.jpg到3.jpg

  • 重命名1.jpg到2.jpg

  • 重命名4.jpg.tmp到1.jpgH 123其他文件不受影响<代码>H 224<代码>F 225

作为输入,我有一个字符串数组,其中包含文件名和到/从的两个文件名。

您能告诉我文件重命名的最佳方法是什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-15 21:29:51

下面是一个简单的方法,考虑到所有的文件都将被命名为numeric.jpg,那么您必须构建自己的函数:

FileExists(Filename)

RenameFile(OriginalFilename,NewFilename)

代码语言:javascript
运行
AI代码解释
复制
<%

Input1 = Request.Form("file1")
Input2 = Request.Form("file2")

'gets digits only
Input1Digit = Left(Input1,Instr(Input1,".")) 
Input2Digit = Left(Input2,Instr(Input2,".")) 


'is file1 less than file2?             
If Input1Digit < Input2Digit Then    

    'loop through the digits frontwards 1 to 5
    For x = Input1Digit to Input2Digit    

        'if the first loop?
        If cStr(x) = cStr(Input1Digit) Then 

            'see if file exists here
            If FileExists(Input1) Then 
                FileRename(Input1, Input1 & ".temp") 'Rename the file here [From, To]
                OriginalFileExists = True
            Else
                FileRename(Input1, Input1Digit & ".jpg"
                OriginalFileExists = False
            End If

        'if not on the first loop?
        Else        

            'did the original file exist '.temp'
            If OriginalFileExists Then 
                NewFileName = cInt(x) - 1
            Else
                NewFileName = cInt(x)
            End If    

            'rename each file here
            RenameFile(x & ".jpg", NewFileName & ".jpg")

        End If    
    Next 

Else


    'loop through the digits more to less 5 to 1
    For x = Input1Digit to Input2Digit STEP -1    

        'if the first loop?
        If cStr(x) = cStr(Input1Digit) Then 

            'see if file exists here
            If FileExists(Input1) Then 
                FileRename(Input1, Input1 & ".temp") 'Rename the file here [From, To]
                OriginalFileExists = True
            Else
                FileRename(Input1, Input1Digit & ".jpg"
                OriginalFileExists = False
            End If

        'if not on the first loop?
        Else        

            'did the original file exist '.temp'
            If OriginalFileExists Then 
                NewFileName = cInt(x) + 1
            Else
                NewFileName = cInt(x)
            End If    

            'rename each file here
            RenameFile(x & ".jpg", NewFileName & ".jpg")

        End If    
    Next 



End If
%>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9297278

复制
相关文章
Excel按列排序和按行排序
文章背景:Excel二维表中记录着多行多列的数据,有时需要按行或按列排序,使数据更加清晰、易读。下面分别对按列排序和按行排序进行介绍。
Exploring
2022/08/10
3.2K0
Excel按列排序和按行排序
Linux 查看目录下所有的日期信息(按最新日期排序)
1、查看当前目录文件 2、查看目录下文件日期的详细信息 ls --full-time 3、编写 shell 脚本 :monitor.sh #!/bin/bash echo "-------------
静谧星空TEL
2021/04/27
3.5K0
Linux 查看目录下所有的日期信息(按最新日期排序)
pandas排序 按索引和值排序
pandas 排序 import pandas as pd import numpy as np unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1']) print (unsorted_df) # 按标签排序 sorted_df = unsorted_df.sort_index(ascending=False) # 降序 print (sorted_df) s
AI拉呱
2021/01/14
2.8K0
hastable按值排序
最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:
codeniu
2022/02/25
1.4K0
python 按中文排序
安装中文库 sudo apt-get update sudo apt-get install language-pack-zh-hans-base sudo dpkg-reconfigure locales 使用 import locale locale.setlocale(locale.LC_COLLATE, 'zh_CN.UTF8') cmp = locale.strcoll courses.sort(lambda x, y: cmp(x.course_name, y.course_name)) 测试
py3study
2020/01/06
1.7K0
【MySQL基础】mysql如何实现中文按拼音排序查询
在查询的时候,经常用到排序,英文的排序自然好说,但是在线上特定场景环境中,可能需要对中文进行排序,比如用户的姓名、地址等等。在mysql中如何对中文排序呢?我们可以使用ORDER BY CONVERT(列名 USING 字符编码集)函数即可将中文列名按拼音顺序进行排序。
青山师
2023/05/04
3.1K1
map按key和按value排序
看一个题: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 Tom 70 jack 70 peter 96 1、按照value排序 2、可以递增排序和递减排序 3、保证排序的稳定性 golang map按key排序 //golang的map不保证有序
李海彬
2018/03/27
3.3K0
map按key和按value排序
看一个题: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 Tom 70 jack 70 peter 96 1、按照value排序 2、可以递增排序和递减排序 3、保证排序的稳定性 golang map按key排序 //golang的map不保证有序
李海彬
2018/03/27
4.7K0
数组按指定顺序排序
数组排序可以直接使用 sort() 方法,可以对数组按规律排序。 但如果指定一个没有规律的顺序进行排序呢? 同样可以使用  sort() 方法: const data = [   { name: '张三', code: 'zs' },   { name: '王五', code: 'ww' },   { name: '赵七', code: 'zq' }, ]; data.sort((star, next) => {   const sortList = ['zq', 'zs', 'ww']   return 
德顺
2022/06/12
2.8K0
Map按单个或多个Value排序,当Value相同时按Key排序
Map可以先按照value进行排序,然后按照key进行排序。 或者先按照key进行排序,然后按照value进行排序,这都是可以的。
向着百万年薪努力的小赵
2023/01/10
2.6K0
php将二维数组按日期(支持Ymd和Ynj格式日期)排序 转
// 原始数组 $array = [         [             'date'=>'2019-2-18',         ],         [             'date'=>'2019-2-4',         ],         [             'date'=>'2019-2-19',         ],         [             'date'=>'2019-2-21',         ],         [             'date'=>'2019-2-24',         ],     ]; var_dump(order_date_array($array, 'desc', 'date')); /*  * 将二维数组按日期(支持Ymd和Ynj格式日期)排序  * order_date_array(原始二维数组, desc还是asc, 日期在二维数组中的键)  * */ function order_date_array($array, $order, $key){     if (!$array){         return [];     }else{         $_array = $array;     }     if (!$order){         $_order = 'desc';     }else{         $_order = $order;     }     if (!$key){ // 二维数据中的Ynj日期的键         $_key = 'date';     }else{         $_key = $key;     }     $new_array = [];     $array_1 = [];     $array_2 = [];     // 日期转时间戳     for ($t=0; $t<count($_array); $t++){         $date = strtotime($_array[$t][$_key]); // Ymd或者Ynj格式日期转时间戳         $array_1[] = $date;         $array_2[] = $date;     }     // 排列方式     if ($_order === 'desc'){ // 降序         rsort($array_2);     }else{ // 升序         sort($array_2);     }     // 重新排序原始数组     for ($r=0; $r<count($array_2); $r++){         $index = array_search($array_2[$r], $array_1); // 元素索引         $new_array[] = $_array[$index];     }     return $new_array; }
双面人
2019/05/21
3K0
MYSQL用法(十六) MySQL按指定字段自定义列表排序
要求:按照字段IS_NEW_PROJ的降序、字段LOAN_APR的降序、字段GMT_BUY_START的升序排序
Java架构师必看
2021/05/31
2.5K0
MYSQL用法(十六) MySQL按指定字段自定义列表排序
MySQL按坐标排序和查找指定范围的坐标
做的项目多了,总会遇到一些需要涉及需要用到地图坐标的。 既然有坐标,那肯定又得涉及位置距离。 例如我们平时使用美团,想搜索附近的美食店,这功能很方便是不是? 希望下面的经验能给你帮助,让你少走些弯路,同时自己做个笔记,方便自己。 毕竟老了,有些东西很快就自己也忘记了,也需要笔记来回忆~
jwj
2022/05/18
2.1K0
LeetCode - 按奇偶排序数组
LeetCode第905题,难度简单。这题很容易联想到之前发过的LeetCode - 按奇偶排序数组②
晓痴
2019/08/01
1.3K0
LeetCode - 按奇偶排序数组
1177: 按要求排序(指针专题)
输入n和n个整数,然后按要求排序,若输入1,请输出升序排序序列;若输入2,请输出降序排序序列,若输入3,请输出按绝对值升序排序序列。要求程序结构如下,请完善程序。
怠惰的未禾
2023/04/27
6030
按奇偶排序数组II
力扣题目链接:https://leetcode-cn.com/problems/sort-array-by-parity-ii/
代码随想录
2021/10/19
1.1K0
BI技巧丨按列排序
PowerBI本身内置的排序方式,是遵循ASCII国际标准的方式,这就导致了中文的默认排序对于很多小伙伴来说并不友好。
PowerBI丨白茶
2022/11/12
3.5K0
BI技巧丨按列排序
LeetCode - 按奇偶排序数组②
这题是LeetCode第N次周赛的题目,题号是922,难度是Easy,当时处于疯狂刷通过率高的题目,然后提高自己的信心的地步...看提交记录,应该是一个月三周前提交的了。
晓痴
2019/07/24
1.3K0
LeetCode - 按奇偶排序数组②
按奇偶排序数组II
给定一个非负整数数组A,A中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当A[i]为奇数时,i也是奇数;当A[i]为偶数时,i也是偶数。 你可以返回任何满足上述条件的数组作为答案。
WindRunnerMax
2020/11/13
1.2K0
展示斗地主扑克牌,支持按出牌规则排序!支持按大小排序!
一副牌有54张,我们给每张牌1个编号(id),取值1-54。如果涉及到2副牌,就取id为1-108。
HullQin
2023/06/28
2.1K0

相似问题

如何在主键列中重用Oracle序列间隙?

22

SQL查询:查找主键中的间隙

20

自动递增ids /主键中的“间隙”会导致任何问题吗?

12

使用序列自动设置Oracle主键

23

从自动增量主键中获取已删除主键列表

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文