我正在尝试为我的录音机创建一个文件,但这个文件不断获得一个随机名称.因为这很难使用,所以我希望在使用更有意义的名称创建文件后重命名该文件.
但是,即使renameTo返回true,文件也未重命名.
我在这里做错了吗?
outfile = File.createTempFile(amount + "_alarmsave", ".3gp",
storageDir);
System.out.println("Old file: "+outfile.getAbsolutePath());
File newFile = new File(outfile.getParent(), "alarmsave_" + amount + ".3gp");
System.out.println("new file: "+newFile.getAbsolutePath());
if(outfile.renameTo(newFile)){
System.out.println("Succes! Name changed to: " + outfile.getName());
}else{
System.out.println("failed");
}
Run Code Online (Sandbox Code Playgroud)
LogCat输出:
01-13 18:27:40.264: I/System.out(22913): Old file: /mnt/sdcard/Personal Alarm/13_alarmsave1623959934.3gp
01-13 18:27:40.264: I/System.out(22913): new file: /mnt/sdcard/Personal Alarm/alarmsave_13.3gp
01-13 18:27:40.284: I/System.out(22913): Succes! Name changed to: 13_alarmsave1623959934.3gp
Run Code Online (Sandbox Code Playgroud) 我想用bash重命名一堆文件,转换这个文件模式:
prefix - name - suffix.txt
Run Code Online (Sandbox Code Playgroud)
进入这一个:
name.txt
Run Code Online (Sandbox Code Playgroud)
为此我写了以下脚本:
find . -name "*.txt" | while read f
do
mv "${f}" "${f/prefix - /}"
done
find . -name "*.txt" | while read f
do
mv "${f}" "${f/ - suffix/}"
done
Run Code Online (Sandbox Code Playgroud)
它有效,但我想使用单个循环执行重命名.可能吗?
在应用程序的内部存储中重命名文件的最佳/最简单方法是什么?我发现有一种Context.deleteFile()方法有点奇怪,但没有"移动"或"重命名"功能.我是否必须一直保存文件内容,删除文件,创建新内容然后将内容复制到文件中?或者有没有办法在现有文件上复制文件?
更新(2012年8月30日):
根据下面建议的解决方案,我无法开展工作:
我试过这个:
ctx.deleteFile("shoppinglists.csv"); <--- delete the old file
File oldfile = new File("shoppinglists.tmp");
File newfile = new File("shoppinglists.csv");
oldfile.renameTo(newfile);
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.在deleteFile()之后,没有更多的事情发生了,我留下了新的shoppinglists.tmp文件.
我错过了什么?
注意:LogCat中没有错误或任何内容.
我正在尝试rename()使用PHP的900 KiB PDF文件.由于某种原因,重命名它需要很长时间.我认为应该是即时的.
这是在CentOS服务器上.在重命名文件时,我可以获取属性,似乎rename()是复制并用新重命名的文件替换旧文件.
旧名称和新名称路径位于同一目录中.
以前有人偶然发现了这个问题吗?
//If exists change name and then return path
$pieces = explode("@", $filename);
$newName = $pieces[0].' '.$pieces[2];
rename($uidPath.$filename, $uidPath.$newName);
if (preg_match('/pdf/', $pieces[2]))
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
else
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
Run Code Online (Sandbox Code Playgroud) 我有一些以'.1'结尾的文件,例如:
example.file.ex1.1
example.file.ex2.1
example.file.ex3.1
Run Code Online (Sandbox Code Playgroud)
有没有一种方法,我可以快速重命名他们都没有在结尾(例如example.file.ex1,example.file.ex2等)" 1.1' ?
谢谢!
如果是源目录和目标目录,MoveFile实际上会将源文件的副本复制到目标文件中,这意味着我最终会看到两个文件.
这是重命名的最佳方式吗?
在c#中重命名文件:
File.Move(source,Destination);
File.Delete(source);
Run Code Online (Sandbox Code Playgroud)
它成功执行,但是当我再次尝试重命名文件时,系统会给出以下异常: 进程无法访问该文件,因为它正由另一个进程使用. 我无法发现它在哪里使用?当我进一步调试错误时,它显示我的类名是在w3wp.exe的过程中,这是IIS.我接下来该怎么办?越来越
foreach (string folder in folder)
{
FileSystemItem item = new FileSystemItem();
DirectoryInfo di = new DirectoryInfo(folder);
item.Name = di.Name;
item.FullName = di.FullName;
item.Path = path + "\\" + item.Name;
item.CreatedDate = di.CreationTime;
item.IsFolder = true;
item.Extension = "folder";
listFolder.Add(item);
}
docList = CreatXmllist(listFolder);
return docList
Run Code Online (Sandbox Code Playgroud)
这是我如何获取文件夹列表,然后它返回到xml.然后在文件夹中我点击它时获取文件
现在来获取图像:这是代码
public xml (string path, List<l> one)
{
List<T> tt = new List<T>();
List<T> SessionList = new List<T>();
string[] files = Directory.GetFiles(HttpContext.Current.Request.PhysicalApplicationPath + path);
foreach (string file in …Run Code Online (Sandbox Code Playgroud) 我有很多这样的文件:
13831_1.jpg
13838_1.jpg
138035_1.jpg
138037_1.jpg
138039_1.jpg
Run Code Online (Sandbox Code Playgroud)
我需要为文件名的数量添加5000000的值.结果应如下:
5013831_1.jpg
5013838_1.jpg
5138035_1.jpg
5138037_1.jpg
5138039_1.jpg
Run Code Online (Sandbox Code Playgroud)
有没有办法用bash或perl做到这一点?
如何创建随机文本字符串以用于文件名?
我正在上传照片并在完成后重命名.所有照片都将存储在一个目录中,因此它们的文件名必须是唯一的.
有这样做的标准方法吗?
有没有办法在尝试覆盖之前检查文件名是否已经存在?
这是为了一个单一的用户环境(我自己)在我的网站上显示我的个人照片,但我想自动化一点.我不需要担心两个用户同时尝试上传和生成相同的文件名,但我确实想检查它是否已经存在.
我知道如何上传文件,我知道如何生成随机字符串,但我想知道是否有一种标准的方法.
我正在上传多个文件.主要功能工作正常,但我必须要改变上传文件的名字,如:
name1.jpg,name2.jps,name3.jpg,...
$i = 1;
if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/name'.$i++.'.'.$extension)){
echo '{"status":"success"}';
exit;
}
Run Code Online (Sandbox Code Playgroud)
数字$i应随着上传文件的数量而增长.我希望它能正确解释.