PHP----fcreate(create,delete,copy)

本文介绍了使用PHP进行文件操作的方法,包括文件的创建、复制、重命名及删除等基本操作,并探讨了如何处理中文字符路径的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php header("Content_Type:text/html;charset=utf-8");
/*
opendir()    打开目录            return: handle/false
readdir()    读取目录            return: handle/false
is_dir()     判断不否目录    return: handle/false
mkdir()      建立目录            return: true/false
getcwd()     得到当前目录    return: path/false
chdir()      改变当前目录    return: true/false
rmdir()      删除目录            return: true/false
rename()	  为目录改名         return: true/false
scandir()    文件夹所有内容  return: array/false


模式	描述
r	only read    只读。在文件的开头开始。
r+	read/write   读/写。在文件的开头开始。
w	only write   只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+	read/write   读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a	and to       追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
a+	read/and to  读/追加。通过向文件末端写内容,来保持文件内容。
x	only write   只写。创建新文件。如果文件以存在,则返回 FALSE。
x+	read/write   读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。
*/


$file_path = $_SERVER['DOCUMENT_ROOT']."/wp_php/style/image/";

//create null file(file not exist create ,exist no create file)
if(touch($file_path."touch1.txt")){
	echo "<br> create null file:success";
}else{
	echo "<br> create null file:fail";
}


//create file(同时往file 里加内容)
if(!file_exists($file_path."create1.txt")){
	$handle = fopen($file_path."create1.txt", "w+");
	
	if(fwrite($handle, "create file content")){
		echo "<br> create file: success";
	}else{
		echo "<br> create file: fail";
	}
	
	fclose($handle);
}else{
	echo "<br> create file: exist";
}

//rename file
if(rename($oldname, $newname)){
	echo "rename file: success";
}else{
	echo "rename file: fail";
}



//Copy file
if(file_exists($file_path."create1.txt")){
	if(copy($file_path."create1.txt", $file_path."create2.txt")){
		echo "<br> copy file: success";
	}else{
		echo "<br> copy file:fail";
	}
	
}else{
	echo "<br> copy file: not exist";
}


//chinaese char  中文字符路径乱码处理
$file_path = iconv("utf-8", "gb2312", "D:\\新建文件夹\\2.jpg");
if(!is_file("D:\\22.jpg")){
	if(copy($file_path, "D:\\22.jpg")){
		echo "<br />"."coyp file success";
	}else{
		echo "<br />"."coyp file fail";
	}
}else{
	echo "<br />"."coyp file: exist";
}



//Delete file
if(file_exists($file_path."create2.txt")){
	if(unlink($file_path."create2.txt")){
		echo "<br> delete file success";
	}else{
		echo "<br> delete file fail";
	}
}else{
	echo "<br> delete file: not exist";
}

?>

### 关于 `H5Fcreate` 的函数用法 `H5Fcreate` 是 HDF5 库中的一个重要函数,用于创建一个新的 HDF5 文件。其完整的原型如下: ```c hid_t H5Fcreate(const char *name, unsigned flags, hid_t create_plist_id, hid_t access_plist_id); ``` #### 参数说明 - **`const char *name`**: 表示要创建的文件名。 - **`unsigned flags`**: 创建模式标志位,通常设置为预定义常量之一: - `H5F_ACC_TRUNC`: 如果文件已存在,则将其截断并重新创建新文件[^2]。 - `H5F_ACC_EXCL`: 如果文件已经存在,调用会失败;此选项确保只有当文件不存在时才创建它[^3]。 - **`hid_t create_plist_id`**: 创建属性列表标识符 (property list ID),可以用来指定文件的高级特性(如压缩、数据存储方式等)。如果不需要特殊配置,可传入默认值 `H5P_DEFAULT`[^4]。 - **`hid_t access_plist_id`**: 访问属性列表标识符,控制如何访问文件(例如缓存大小调整或驱动器选择)。同样地,默认情况下也可以传递 `H5P_DEFAULT`。 #### 返回值 成功返回有效的文件标识符 (`hid_t`),错误则返回负数 (-1)[^5]。 --- ### 使用实例 下面是一个简单的例子展示如何利用 `H5Fcreate` 来创建一个 HDF5 文件,并写入一些基本的数据集。 ```c #include <hdf5.h> int main(void) { hid_t file_id; /* File identifier */ herr_t status; // Step to create a new HDF5 file with default properties. file_id = H5Fcreate("example_file.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); if(file_id < 0){ printf("Error creating the file.\n"); return -1; } // Perform operations on 'file_id' here... // Close the file when done. status = H5Fclose(file_id); if(status < 0){ printf("Failed closing the file properly.\n"); return -1; } return 0; } ``` 上述代码片段展示了通过 `H5Fcreate` 方法来初始化新的 HDF5 数据库文件的过程[^6]。 --- ### 常见问题及解决方案 在实际应用过程中可能会遇到某些特定情况下的异常或者疑问,比如权限不足无法保存到目标路径下等问题。以下是几个常见场景及其处理方法: 1. **文件已被占用** 当尝试打开已有同名文件而未正确设定 flag 导致冲突时,应确认是否需要覆盖原文件还是另起名字新建副本[^7]。 2. **跨平台兼容性考量** 不同操作系统间可能存在细微差异影响最终效果,建议开发阶段多测试不同环境适应能力[^8]。 3. **资源泄漏风险防范** 每次操作完毕务必记得释放相应句柄以免造成内存泄露隐患[^9]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值