下面是我用来将文件上传到目录的代码.它工作正常.我的主要问题是:
move_uploaded_file()是将上传的文件保存到目录中的一个,我也猜测move_uploaded_file()是为其设置名称的那个.
如何将文件名更改为随机数?
我试过这样做:
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 100000) && in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
$fileName = $temp[0] . "." . $temp[1];
$temp[0] = rand(0, 3000); //Set …Run Code Online (Sandbox Code Playgroud) 我有一组文件,所有这些文件nnn.MP4.mov我怎么能重命名它们才这样nnn.mov呢?
使用django上传服务器时,使用唯一文件名重命名照片的最佳方法是什么?我想确保每个名称只使用一次.是否有任何pinax应用程序可以做到这一点,也许与GUID?
我知道如何重命名文件等,但我遇到了麻烦.
我只需要test-this在for循环中重命名.
test-this.ext
test-this.volume001+02.ext
test-this.volume002+04.ext
test-this.volume003+08.ext
test-this.volume004+16.ext
test-this.volume005+32.ext
test-this.volume006+64.ext
test-this.volume007+78.ext
Run Code Online (Sandbox Code Playgroud) 有没有办法在Android Studio项目中更改文件名?我来自Visual Studio并尝试选择 - 更改文件名.我已经尝试过F2那个键盘快捷键.
我无法通过实验检查这一点,也无法从手册页中收集它.
假设我有两个进程,一个从directory1移动(重命名)file1到directory2.假设另一个并发运行的进程将directory1和directory2的内容复制到另一个位置.是否有可能以这样的方式发生复制:directory1和directory2都将显示file1 - 即在移动之前复制directory1,在第一个进程移动之后复制directory2.
基本上是rename()是一个原子系统调用?
谢谢
我在一个文件夹中有超过700个文件,命名为:从第1个到第9个的文件在第一个月命名:
water_200101_01.img
water_200101_09.img
Run Code Online (Sandbox Code Playgroud)
从10号到30号的文件命名为:
water_200101_10.img
water_200101_30.img
Run Code Online (Sandbox Code Playgroud)
等第二个月:从1号到9号的文件被命名为:
water_200102_01.img
water_200102_09.img
Run Code Online (Sandbox Code Playgroud)
从10号到30号的文件命名为:
water_200102_10.img
water_200102_30.img
Run Code Online (Sandbox Code Playgroud)
如何在不对文件进行任何更改的情况下重命名它们.例如,只需改变纳米
water_1
water_2
...till...
water_700
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要录制视频.在开始录制之前,我正在为其分配名称和目录.录制完成后,用户可以重命名他的文件.我写了下面的代码,但似乎不起作用.
当用户输入文件名并单击按钮时,我会这样做:
private void setFileName(String text) {
String currentFileName = videoURI.substring(videoURI.lastIndexOf("/"), videoURI.length());
currentFileName = currentFileName.substring(1);
Log.i("Current file name", currentFileName);
File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), MEDIA_NAME);
File from = new File(directory, "currentFileName");
File to = new File(directory, text.trim() + ".mp4");
from.renameTo(to);
Log.i("Directory is", directory.toString());
Log.i("Default path is", videoURI.toString());
Log.i("From path is", from.toString());
Log.i("To path is", to.toString());
}
Run Code Online (Sandbox Code Playgroud)
文本:是用户输入的名称.当前文件名:是我在记录MEDIA_NAME之前分配的名称:文件夹名称
Logcat显示了这个:
05-03 11:56:37.295: I/Current file name(12866): Mania-Karaoke_20120503_115528.mp4
05-03 11:56:37.295: I/Directory is(12866): /mnt/sdcard/Movies/Mania-Karaoke
05-03 11:56:37.295: I/Default path is(12866): /mnt/sdcard/Movies/Mania-Karaoke/Mania-Karaoke_20120503_115528.mp4
05-03 11:56:37.295: I/From path is(12866): …Run Code Online (Sandbox Code Playgroud) 我正在使用WinXP.我用java生成一个文件列表.该文件最初将创建为abc.txt.temp,完成生成后,它将重命名为abc.txt.
但是,当我生成文件时,某些文件无法重命名.它是随机发生的.
反正有没有找出失败的原因?
int maxRetries = 60;
logger.debug("retry");
while (maxRetries-- > 0)
{
if (isSuccess = file.renameTo(file2))
{
break;
}
try
{
logger.debug("retry " + maxRetries);
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//file.renameTo(file2);
Thread.currentThread().getThreadGroup().getParent().list();
Run Code Online (Sandbox Code Playgroud)
结果如下:
[DEBUG][2009-08-25 08:57:52,386] - retry 1
[DEBUG][2009-08-25 08:57:53,386] - retry 0
java.lang.ThreadGroup[name=system,maxpri=10]
Thread[Reference Handler,10,system]
Thread[Finalizer,8,system]
Thread[Signal Dispatcher,9,system]
Thread[Attach Listener,5,system]
java.lang.ThreadGroup[name=main,maxpri=10]
Thread[main,5,main]
Thread[log4j mail appender,5,main]
[DEBUG][2009-08-25 08:57:54,386] - isSuccess:false
Run Code Online (Sandbox Code Playgroud)
我想知道一种系统的方法来找出原因.谢谢.
许多网站(包括各种SO文章)都谈到使用Perl表达式重命名文件来"重命名".
这将是完美的,但显然这不是我的重命名实用程序,并且这些文章似乎都没有理解有多个版本的"重命名",我似乎无法找到接受Perl表达式的版本的位置.
我正在运行Fedora 20.我当前的重命名命令来自util-linux包,显然我需要Perl版本,这更好.