标签: file-rename

尝试在重命名后在Java中设置文件的上次修改时间

这是我开始使用的代码:

long modifiedTime = [some time here];
File oldFile = new File("old_name.txt");
boolean renamed = oldFile.renameTo(new File("new_name.txt");
boolean timeChanged = oldFile.setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
Run Code Online (Sandbox Code Playgroud)

我看到的输出是:

renamed: true
time changed: false
Run Code Online (Sandbox Code Playgroud)

但当我尝试时:

long modifiedTime = [some time here];
boolean renamed = new File("old_name.txt").renameTo(new File("new_name.txt"));
boolean timeChanged = new File("new_name.txt").setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
Run Code Online (Sandbox Code Playgroud)

这个输出似乎工作得很好:

renamed: true
time changed: true
Run Code Online (Sandbox Code Playgroud)

为什么第二种方法有效,第一种方法不适用?

java last-modified file-rename

5
推荐指数
1
解决办法
3850
查看次数

使用Perl,在MSWin32上Win32API :: File :: MoveFile和CORE :: rename之间有区别吗?

我看到Win32API :: File支持MoveFile().但是,我不确定如何CORE::rename()以这样的方式实施它应该重要.有人可以将这些区别 - 特别是Win32环境 - 并置

  • CORE::rename()
  • File::Copy::move()
  • 和, Win32API::File::MoveFile()

perl winapi file-rename strawberry-perl

5
推荐指数
1
解决办法
596
查看次数

PHP zip 解压并重命名

下面的代码可以工作。

$zip = new ZipArchive;
if($zip->open($path) === TRUE) {
   $zip->renameName('list.csv', 'list'.$batch_id.'.csv');
   $zip->extractTo('list_output');
   $zip->close();
}
Run Code Online (Sandbox Code Playgroud)

zip 内的文件已重命名,但未解压。如果我删除 renameName 行,那么它会正常提取。我需要它来完成这两件事。

php zip file-rename

5
推荐指数
1
解决办法
7706
查看次数

WinError 183 与 os.rename()

python3.3在win7中运行脚本。在运行结束时,我删除了一个 copyFile 并将 tempFile 重命名为 copyFile,如下所示:

os.remove(scancpName)

os.rename(scantmpName, scancpName)
Run Code Online (Sandbox Code Playgroud)

虽然我在重命名之前删除了旧的 copyFile,但我接到了电话:

FileExistsError: [WinError 183] 当该文件已存在时无法创建文件

我在这里错过了什么吗?

python file-rename

5
推荐指数
0
解决办法
2385
查看次数

在linux或windows中更改目录中的所有文件名和扩展名

我有成千上万的文件扩展名,像这样

3_bedroom_villas_in_chennai.html__201308050010_
3_bedroom_villas_in_chennai.html__201308080012_
3_bedroom_villas_in_chennai.html__201308100012_
3_bedroom_villas_in_chennai.html__201308110034_ and so on.....
Run Code Online (Sandbox Code Playgroud)

在目录中.我想将所有这些改为以下内容

3_bedroom_villas_in_chennai__201308050010_.html
3_bedroom_villas_in_chennai__201308080012_.html
3_bedroom_villas_in_chennai__201308100012_.html
3_bedroom_villas_in_chennai__201308110034_.html
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令在Windows中执行此操作时

ren *.* *.html
Run Code Online (Sandbox Code Playgroud)

我得到了以下内容

A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found.
A duplicate file name exists, or the file
cannot be found. and so on...
Run Code Online (Sandbox Code Playgroud)

因为我知道它会尝试将所有内容更改为单个文件名

3_bedroom_villas_in_chennai.html and so on... 
Run Code Online (Sandbox Code Playgroud)

在Windows或Linux上做任何方法?

linux windows file-management file-rename

5
推荐指数
1
解决办法
6485
查看次数

Groovy 重命名文件

我正在尝试使用 Groovy 重命名目录中的文件,但我似乎无法理解它是如何工作的。

这是我的脚本:

import groovy.io.FileType

def dir = new File("C:/Users/????/Downloads/Busta_Rhymes-Genesis-(Retail)-2001-HHI")

def replace = {
    if (it == '_') {
        ' '
    }
}

String empty = ""

dir.eachFile (FileType.FILES) { file ->
    String newName = file.name
    newName = newName.replaceAll(~/Busta_Rhymes/, "$empty")
    newName = newName.replaceAll(~/feat/, "ft")
    newName = newName.replaceAll(~/-HHI/, "$empty")
    newName = newName.replaceAll(~/--/, "-")

    newName = newName.collectReplacements(replace)

    file.renameTo newName

    println file.name
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,文件的名称没有按预期更改。我想知道我怎么能让这个工作。

io groovy file file-rename

5
推荐指数
1
解决办法
9042
查看次数

使用 mv 在 bash 中使用正则表达式

我有 4 个文件要重命名:

./01:
I0010001  I0020001

./02:
I0010001  I0020001
Run Code Online (Sandbox Code Playgroud)

我想为.dcm每个文件添加辅助文件名,所以我尝试过:

$ mv \(*/*\) \1.dcm
mv: cannot stat '(*/*)': No such file or directory

$ mv \(./*/*\) \1.dcm
mv: cannot stat '(./*/*)': No such file or directory

$ mv \(./\*/\*\) \1.dcm
mv: cannot stat '(./*/*)': No such file or directory

$ mv "\(./*/*\)" "\1.dcm"
mv: cannot stat '\(./*/*\)': No such file or directory

$ mv 0\([1-2]\)/I00\([1-2\)]0001 0\1/I00\20001.dcm
mv: cannot stat '0([1-2])/I00([1-2)]0001': No such file or directory

$ mv "0\([1-2]\)/I00\([1-2\)]0001" …
Run Code Online (Sandbox Code Playgroud)

regex bash mv file-rename batch-rename

5
推荐指数
1
解决办法
8982
查看次数

使用pathlib破坏性地将一个目录重命名为另一个现有目录

我有一个可能看起来像的目录结构

Data
    Current
        A
        B
        C
    Previous
        A
        X
Run Code Online (Sandbox Code Playgroud)

在尽可能简单/快速的步骤中,我想重命名CurrentPrevious包含内容并擦除原始内容,使其现在:

 Data
    Previous
        A
        B
        C
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西:

from pathlib import Path
src = Path('Data/Current')
dest = Path('Data/Previous')
src.replace(dest)
Run Code Online (Sandbox Code Playgroud)

文档让我希望这会起作用:

如果target指向现有文件或目录,则将无条件地替换它.

但它似乎确实是有条件的.我得到一个Directory not empty例外.我想我可以先递归删除Previous目录.这基本上是唯一的解决方案吗?或者有更好的方法来实现这一目标吗?

(我更喜欢pathlib,但如果os或者shutil是更好的锤子,我不反对他们)

(我在Linux上运行)

python file-rename python-3.x

5
推荐指数
1
解决办法
275
查看次数

由于其名称无法打开文件

我试图重命名一些文件,我有一些问题.我举一个例子:我试图重命名一个名为"pronunciation_he_אָדוֹם_אֲדוּמָה"的文件.它给了我一个错误,当我深入研究它时,我发现它是因为它无法打开文件.问题不在于希伯来语的特征,而在于奇怪的空间.当我将空间更改为正常空间时,一切正常.

我使用的是python 2.7.15.

这是更改文件名称的代码:

import os
for filename in os.listdir("E:\Project\Selenium\Check"):
    os.rename(os.path.join("E:\Project\Selenium\Check" ,filename), os.path.join("E:\Project\Selenium\Check" ,"check.mp3"))
Run Code Online (Sandbox Code Playgroud)

错误:WindowsError:[错误123]文件名,目录名或卷标语法不正确

当我刚尝试打开文件时:

import os
for filename in os.listdir("E:\Project\Selenium\Check"):
    file = open(os.path.join("E:\Project\Selenium\Check" ,filename))
Run Code Online (Sandbox Code Playgroud)

错误:IOError:[Errno 22]无效模式('r')或文件名:'E:\ Project\Selenium\Check\pronunciation_he _?\ xe0\xc8\xe3\xe5\xc9\xed_\xe0\xc2\xe3\xe5\XCC\XEE\xc8\xe4.mp3'

提前致谢!

EDIT更改为PYTHON 3 JUST解决了这个问题

python file-rename python-2.7

5
推荐指数
0
解决办法
132
查看次数

重命名多个文件,通过“_”分割文件名并保留第一个和最后一个字段

假设我有以下文件:

a_b.txt               a_b_c.txt             a_b_c_d_e.txt         a_b_c_d_e_f_g_h_i.txt
Run Code Online (Sandbox Code Playgroud)

我想以这样的方式重命名它们,我将它们的文件名分开_并保留第一个和最后一个字段,所以我最终得到:

a_b.txt               a_c.txt             a_e.txt         a_i.txt
Run Code Online (Sandbox Code Playgroud)

以为这很容易,但我有点卡住了......

我尝试rename使用以下正则表达式:

rename 's/^([^_]*).*([^_]*[.]txt)/$1_$2/' *.txt
Run Code Online (Sandbox Code Playgroud)

但是我真正需要做的是实际拆分文件名,所以我想到了awk,但我对它并不那么精通......这就是我目前所拥有的(我知道在某些时候我应该指定FS="_"并抓住第一个和最后一个字段不知何故......

find . -name "*.txt" | awk -v mvcmd='mv "%s" "%s"\n' '{old=$0; <<split by _ here somehow and retain first and last fields>>; printf mvcmd,old,$0}'
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?我没有首选方法,但使用它来学习会很好awk。谢谢!

regex awk split rename file-rename

5
推荐指数
1
解决办法
81
查看次数