精华内容
下载资源
问答
  • java语言(文件文件流知识点)实现图片的拷贝,从c盘拷贝到d盘
  • python拷贝文件到U盘

    千次阅读 2017-03-21 15:26:39
    刚好有个想法,不用每次都用鼠标复制黏贴就把文件拷贝到我的U盘里。如果有兴趣的还可以写个守护进程。 下面是代码 import win32file import os import win32file import tempfile import shutil from win32...

    最近在学python。刚好有个想法,不用每次都用鼠标复制黏贴就把文件拷贝到我的U盘里。如果有兴趣的还可以写个守护进程。

    下面是代码

    import win32file
    import os
    import win32file
    import tempfile
    import shutil

    from win32com.shell import shell, shellcon


    '''
    检查系统有多少个盘,并返回最后一个盘符,一般U盘为最后一个。所以返回的是u盘符号。
    '''
     
    def getdrives():  
        drives=[]  
        sign=win32file.GetLogicalDrives()  
        drive_all=["A:\\","B:\\","C:\\","D:\\","E:\\","F:\\","G:\\","H:\\","I:\\",  
                    "J:\\","K:\\","L:\\","M:\\","N:\\","O:\\","P:\\","Q:\\","R:\\",  
                    "S:\\","T:\\","U:\\","V:\\","W:\\","X:\\","Y:\\","Z:\\"]  
        for i in range(25):  
            if (sign&1<<i):  
                if win32file.GetDriveType(drive_all[i])==3:  
                    drives.append(drive_all[i])  
        return drives  
      
    def is_UDisk(drives):  
        UDisk=[]
        for item in drives:
            try :  
                free_bytes,total_bytes,total_free_bytes=win32file.GetDiskFreeSpaceEx(item)
                if (free_bytes/1024/1024/1024)<17:
                    UDisk.append(item)
                    print 'append'
                else:
                    print free_bytes/1024/1024/1024
            except :
                break  
        return UDisk  
      
    if __name__=="__main__":  
        drives=is_UDisk(getdrives())  
        print drives  
        dir = ''.join(drives)


    '''
    往里面拷贝一个文件
    '''
    newfile = os.path.join(dir,"中转站")
    print newfile
    #shutil.copytree("C:\\Users\\Lenovo\\Desktop\\2017\\","C:\\Users\\Lenovo\\Desktop\\2018\\")


    #filename1 = tempfile.mktemp (".txt")


    filename1 = os.path.join(newfile,"hello.txt")  #需要拷贝的文件
    #filename3 = "C:\\Users\\Lenovo\\Desktop\\2017"
    filename3 = os.path.join(newfile,"hello")  # 需要拷贝的文件夹
    #open (filename1, "w").close ()
    filename2 = filename1 + ".copy"
    print filename1, "=>", filename2
    filename4 = os.path.join(newfile,"bak")
    #拷文件
    #文件已存在时,shellcon.FOF_RENAMEONCOLLISION会指示重命名文件
    shell.SHFileOperation ((0, shellcon.FO_COPY, filename1, filename2, 0, None, None))
    '''
    shell.SHFileOperation (
      (0, shellcon.FO_COPY, filename1, filename2, shellcon.FOF_RENAMEONCOLLISION, None, None)
    )
    shell.SHFileOperation (
      (0, shellcon.FO_COPY, filename1, filename2, 0, None, None)
    )
    '''
    if os.path.isfile (filename2): print "Success"


    #拷目录
    shell.SHFileOperation (
      (0, shellcon.FO_COPY, filename3, filename4, 0, None, None)
    )
     
    if os.path.isdir (filename4): print "Success"





    展开全文
  • 一个可以监控U盘接入、自动拷贝文件到U盘、自动移除U盘的小程序 1,支持自动拖拽文件,并获取文件路径。 支持文件拖拽: DragAcceptFiles(hWnd, TRUE); 调用该API后,向窗口拖拽文件就会...
    一个可以监控U盘接入、自动拷贝文件到U盘、自动移除U盘的小程序



    1,支持自动拖拽文件,并获取文件路径。

    支持文件拖拽:
    DragAcceptFiles(hWnd, TRUE);
    调用该API后,向窗口拖拽文件就会收到 WM_DROPFILES消息。
    在响应该消息的时候,可以使用DragQueryFile来获取文件数量以及文件的具体路径。
    用法如下:
    BOOL OnDragFiles(WPARAM wp, LPARAM lp)
    {
    	HDROP hDrop = reinterpret_cast<HDROP>(wp);
    	int nCount = DragQueryFile(hDrop, -1, NULL, NULL);
    	for (int i = 0; i < nCount; i++)
    	{
    		TCHAR szSrcPath[MAX_PATH] = { 0 };
    		DragQueryFile(hDrop, i, szSrcPath, MAX_PATH - 1);
    		g_VectSrcFilePath.push_back(szSrcPath);
    	}
    	return TRUE;
    }
    备注:如果拖拽的是一个文件夹,只会获取到该文件夹的全路径,文件夹的内容需要自己去遍历。

    2,监控U盘接入。
    监控U盘接入一种简单的方法就是 监听WM_DEVICECHANGE消息。
    为了准确监听该消息需要注册事件:
    BOOL RegisterDeviceEvent(HWND hWnd)
    {
    	DEV_BROADCAST_DEVICEINTERFACE DevInt;
    	memset(&DevInt, 0, sizeof(DEV_BROADCAST_DEVICEINTERFACE));
    	DevInt.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
    	DevInt.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
    	DevInt.dbcc_classguid = { 0xA5DCBF10, 0x6530, 0x11D2, { 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } };
    	return (RegisterDeviceNotification(hWnd, &DevInt, DEVICE_NOTIFY_WINDOW_HANDLE) != NULL);
    
    }
    然后响应该消息,可以获取接入U盘的盘符:
    TCHAR FirstDriveFromMask(ULONG unitmask)
    {
    	int i;
    	for (i = 0; i < 26; ++i)
    	{
    		if (unitmask & 0x1)
    			break;
    		unitmask = unitmask >> 1;
    	}
    	return (i + _T('A'));
    }
    BOOL OnDeviceChange(WPARAM wp, LPARAM lp)
    {
    	DWORD dwdata = static_cast<DWORD>(wp);
    	PDEV_BROADCAST_HDR lpdb = reinterpret_cast<PDEV_BROADCAST_HDR>(lp);
    	switch (dwdata)
    	{
    	case DBT_DEVICEREMOVECOMPLETE:
    		break;
    	case DBT_DEVICEARRIVAL:
    		if (lpdb != NULL)
    		{
    			if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
    			{
    				PDEV_BROADCAST_VOLUME lpdv = reinterpret_cast<PDEV_BROADCAST_VOLUME>(lp);
    				TCHAR cVolume = FirstDriveFromMask(lpdv->dbcv_unitmask);
    				g_cVolume = cVolume;

    知道盘符我们就可以方便的往里面拷贝文件了。

    3,移除U盘:

    有很多种方案,使用 CM_Request_Device_Eject API的好的一点就是 调用之后就看不到这个盘符了

    可参考代码:

    void RemoveTheUSBDisk(TCHAR DriveLetter)
    {
    	if (DriveLetter < _T('A') || DriveLetter > _T('Z'))
    	{
    		return ;
    	}
    
    	TCHAR szRootPath[] = _T("X:\\");   // "X:\"  -> for GetDriveType
    	szRootPath[0] = DriveLetter;
    
    	TCHAR szDevicePath[] = _T("X:");   // "X:"   -> for QueryDosDevice
    	szDevicePath[0] = DriveLetter;
    
    	TCHAR szVolumeAccessPath[] = _T("\\\\.\\X:");   // "\\.\X:"  -> to open the volume
    	szVolumeAccessPath[4] = DriveLetter;
    
    	HANDLE hDevice = CreateFile(szVolumeAccessPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
    		OPEN_EXISTING, NULL, NULL);
    	if (hDevice == INVALID_HANDLE_VALUE) 
    	{
    		return ;
    	}
    	// get the volume's device number
    	STORAGE_DEVICE_NUMBER sdn;
    	DWORD dwBytesReturned = 0;
    	long DeviceNumber = -1;
    	long res = DeviceIoControl(hDevice, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sdn,
    		sizeof(sdn), &dwBytesReturned, NULL);
    	if (res) 
    	{
    		DeviceNumber = sdn.DeviceNumber;
    	}
    	CloseHandle(hDevice);
    
    	if (DeviceNumber == -1) 
    	{
    		return ;
    	}
    
    	// get the drive type which is required to match the device numbers correctely
    	UINT DriveType = GetDriveType(szRootPath);
    
    	// get the dos device name (like \device\floppy0) to decide if it's a floppy or not - who knows a better way?
    	TCHAR szDosDeviceName[MAX_PATH] = { 0 };
    	res = QueryDosDevice(szDevicePath, szDosDeviceName, MAX_PATH);
    	if (!res) 
    	{
    		return;
    	}
    
    	DEVINST DevInst = GetDrivesDevInstByDeviceNumber(DeviceNumber, DriveType, szDosDeviceName);
    
    	if (DevInst == 0) 
    	{
    		return;
    	}
    
    	PNP_VETO_TYPE VetoType = PNP_VetoTypeUnknown;
    	TCHAR VetoName[MAX_PATH];
    	VetoName[0] = 0;
    	bool bSuccess = false;
    
    	DEVINST DevInstParent = 0;
    	res = CM_Get_Parent(&DevInstParent, DevInst, 0);
    
    	for (long tries = 1; tries <= 3; tries++) 
    	{ // sometimes we need some tries...
    
    		VetoName[0] = 0;
    
    		// CM_Query_And_Remove_SubTree doesn't work for restricted users
    		//res = CM_Query_And_Remove_SubTreeW(DevInstParent, &VetoType, VetoNameW, MAX_PATH, CM_REMOVE_NO_RESTART); // CM_Query_And_Remove_SubTreeA is not implemented under W2K!
    		//res = CM_Query_And_Remove_SubTreeW(DevInstParent, NULL, NULL, 0, CM_REMOVE_NO_RESTART);  // with messagebox (W2K, Vista) or balloon (XP)
    
    		res = CM_Request_Device_Eject(DevInstParent, &VetoType, VetoName, MAX_PATH, 0);
    		//res = CM_Request_Device_EjectW(DevInstParent, NULL, NULL, 0, 0); // with messagebox (W2K, Vista) or balloon (XP)
    
    		bSuccess = (res == CR_SUCCESS && VetoType == PNP_VetoTypeUnknown);
    		if (bSuccess)  
    		{
    			break;
    		}
    
    		Sleep(500); // required to give the next tries a chance!
    	}
    
    	if (bSuccess) 
    	{
    		return;
    	}
    
    	return;
    
    
    }

    Thanks~





    展开全文
  • </pre><pre name="code" class="java">import java.io.File; public class TestFile { ... File file=new File("c:/java"); printFileName(file,file.getName(),"e:"); } } 比较简易的方法,只是复制文件名。
    </pre><pre name="code" class="java">import java.io.File;
    
    public class TestFile {
    
    	 public static void printFileName(File file,String fName,String path){
    		 try{
    			 System.out.println(fName+file.getName());
    			 File nFile=new File(path+file.getName());
    			 if(file.isFile()){
    				 nFile.createNewFile();
    				 return;
    			 }
    			 nFile.mkdirs();
    			 File[]list=file.listFiles();
    			 for(int i=0;i<list.length;i++){
    				 printFileName(list[i],fName+"--",path+file.getName()+"/");
    				 
    			 }
    			 
    		 }catch(Exception e){
    			 
    			 e.printStackTrace();
    		 }
    	 }
    	 public static void main(String[] args){
    		 File file=new File("c:/java");
    		 printFileName(file,file.getName(),"e:");
    	 }
    }
    比较简易的方法,只是复制文件名。
    展开全文
  • IO流的方向由程序决定,相...File file1 = new File("c://a.txt"); File file2 = new File("d://a.txt"); 2.创建输入流 FileInputStream fis = new FileInputStream(file1); FileOutputStream fos = new FileOutputS...

    IO流的方向由程序决定,相对于程序而言

    1.找到要操作的数据源
    File file1 = new File("c://a.txt");
    File file2 = new File("d://a.txt");
    2.创建输入流
    FileInputStream fis = new FileInputStream(file1);
    FileOutputStream fos = new FileOutputStream(file2);
    3.循环输入输出
    //定义变量接收读取的数据
    byte[] b = new byte[1024];
    //去除缓存 
    int len = 0;
    while((len = fis.read(b))!=-1){
        fos.write(b,0,len);
        fos.flush();
    }
    fos.close();
    fis.close();
    
    展开全文
  • 实例: ...作用:登录进入共享,将\\192.168.1.xxx\W-Game\UI\目录下所有(包括子目录)jpg格式的文件复制Ff:\_1\UI\Jpg\,并且会保留文件原来的目录结构不变 最后一行被注释掉的,作用同上 ...
  • 使用Linux命令行挂载U盘和拷贝文件

    千次阅读 2019-03-04 17:40:10
    当一个文件路径太深(如下述的a/b/c/d/e/orginalFile.txt),访问起来十分不方便时,就会创建这个文件的软链接,使之访问起来更方便些。软链接就相当于windows上的快捷方式。 cp命令创建软链接 六、创建文件的...
  • 拷贝远程服务器的文件到本地:scp -r -P 端口号 用户名@IP地址:/usr/local/tomcat_airc/webapps/ /tmp/kyj/ 拷贝本地文件到远程服务器:scp -r /tmp/kyj/sys.war 用户名@IP地址:/usr/local/tomcat_airc/webapps/
  • 从Linux 服务器拷贝文件到Windows 本地

    千次阅读 2020-08-05 10:35:35
    下载putty软件,并在C盘安装目录中,找到pscp.exe文件,将pscp.exe的路径加入系统环境变量Path中 按下Windows键+R,输入cmd然后回车,既可进入命令行模式 输入命令行 scp –r linux登录账户@服务器IP:服务器上...
  • CentOS7从U盘中拷贝文件

    千次阅读 2017-11-04 23:20:00
    1. 要想从U盘中拷贝文件,必须要将U盘挂载一个目录中,所以必须新建一个目录,一般建在/mnt下。我们执行:mkdir /mnt/usb来新建一个目录。 2. 查看U盘是否已经被识别。执行:df -lH查看磁盘信息。如果出现一块...
  • 1、在运行中输入gpedit.msc,打开“本地策略组”编辑器 2、选择 计算机配置——Windows设置——安全设置——本地策略——安全选项 3、找到 “用户账户控制:以管理员批准模式运行所有管理员”(默认为已启用)... ...
  • 现在想从“C:\Program Files\常用绿色软件\soft\”将‘FinalData.exe'、‘OfficeDiary.exe'、‘DisplayX.exe'这三个程序拷贝到C:\WINDOWS\system32'并覆盖原有的三个,应该怎么编写??? 问题1:批处理的编写支持...
  • 文件无法复制到c盘的解决办法

    千次阅读 2019-06-19 14:15:05
    想复制一个文件到c盘,开始说没有权限,于是权限设置为完全控制。 但又报, 汗! 最后,关闭用户账户控制,控制面板-用户账户-更改用户账户控制设置-从不通知,重启系统。问题解决。 问题解决。 参考文章...
  • python 自动监测并拷贝U盘文件

    千次阅读 2019-02-27 09:41:50
    今天给大家介绍一个可以偷偷拷贝别人 U 文件的 python 程序,没错,程序自动监测 U 插入并读取 U 盘内文件拷贝到本地电脑。   说一说程序的实现思路,由于 U 插入电脑后,电脑上会出现一个新的盘符,...
  • linux命令行下怎么往u盘拷贝文件

    千次阅读 2012-08-21 13:57:00
    linux命令行下怎么往u盘拷贝文件 该命令的功能是将给出的文件或目录拷贝另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。 语法:cp [选项] 源文件或目录 目标文件或目录 说明:该命令...
  • ubuntu在shell中把文件拷贝进U盘

    千次阅读 2015-04-24 11:30:06
    1、创建挂载位置,例如 sudo mkdir /mnt/u 2、用mount命令将U盘挂载在这个位置 ...3、将要拷贝进U盘的文件复制U盘的挂载文件夹下 cd ~/Downloads sudo cp -r 文件名 /mnt/u 4、卸载U盘 umount /mnt/u
  • 拷贝完成后可用net stop sshd 关闭服务) 第二步 用SecureCRT连接服务器,在服务器尝试连接本地 连接服务器成功后,输入 ssh username@userIP,其中username是本地的用户名,userIP是本地的...
  • Linux下实现文件夹内随机拷贝文件到另一个文件夹 前几天,搞训练集和验证集划分的时候,从源文件中拷贝训练集和验证集,没考虑样本的均分,导致训练效果不尽如人意。又回过头来重新划分下,参考几个大神的代码,...
  • adb 拷贝手机中的文件到电脑

    千次阅读 2017-09-20 18:14:58
    1、在手机链接电脑时,使用adb logcat>{d:log_18.txt} 2、拷贝应用安装目录下的文件(如数据库,缓存文件电脑。...c、把相应目录下的文件拷贝到sdcrad. cp log.txt /sdcard 这样就把应用安装目录下cache目录
  • 最近 工作中用windows的脚本命令处理文件,这里记录一下; 首先是xcopy, 这个命令我们可以在cmd里去使用 xcopy/? 查看帮助文档; C:\Users\Administrator>xcopy/? 复制文件和目录树。 XCOPY source ...
  • 论坛的求助帖:我要把C盘下的1.txt拷贝到G盘下music文件夹下最底层目录下呢!!! 最低层目录 目录名是不一样的。 G:/music/A/男/阿杜/坚持到底/ G:/music/B/男/冯晓泉/天上人间/ G:/music/C/女/蔡依林/城堡/。。...
  • Android Studio3.0缓存文件移出C盘总结

    千次阅读 2018-12-26 09:55:45
    安装Android Studio3.0时也没注意配置路径,稀里糊涂使用一段时间后,发现原本剩余空间就不多的C盘,现在几乎没有什么空间了: 找来找去发现Android Studio下载的文件占用了7个多G(默认在C:\Users\YourUserName\ *...
  • 树莓派4 系统拷贝到移动硬盘

    千次阅读 2020-03-05 08:32:01
    目的 把操作系统安装带速度更快的SSD移动硬盘内,目前移动硬盘/U盘在树莓派4中还无法实现从移动硬盘/U盘... TF卡 2块(其中一块是被拷贝系统用的—这块里面可能是有用户安装了各种应用和数据的TF卡 称为 C卡,另一...
  • 批处理拷贝文件和文件夹

    千次阅读 2017-11-23 16:28:00
    经常做数据备份的人很清楚,如果是少量数据或文件,简单复制即可,可是要是大量数据的话,再用这种方法,则费力...这条命令的意思就是把C盘下的PPT文件夹全部拷贝到D盘 XCOPY 还有众多的功能, 是加参数来完成的。上...
  • 如何把C盘里的文件复制D盘中?

    千次阅读 2011-08-31 00:46:06
  • 在Linux系统里面用到 cp命令复制不能显示文件拷贝的进度,也不能计算还有多长时间文件可以 拷贝结束,现在写一个程序可以显示文件拷贝的进度。思路:当前目录下面有一个1G大小的bigfile文件当我在命令行下面输入ls -...
  • 删除C盘无用文件

    千次阅读 2007-07-17 13:28:00
    删除以下文件夹中的内容: c:/Documents and Settings/用户名/Cookies/下的所有文件(保留index文件) c:/Documents and Settings/用户名/Local Settings/Temp/下的所有文件(用户临时文件) c:/Document
  • 保护电脑上的文件不被U盘拷贝

    千次阅读 2013-06-10 21:47:08
    在打开的运行选项对话窗口中,我们输入注册表...这时候重新插入你的U盘,文件是不是又可以拷贝进行了,如果想再次禁用拷贝文件的话,只需要双击刚才保存在C盘根目录下的禁止.reg文件,重新导入注册即可。
  • win 远程拷贝文件 bat 批处理

    千次阅读 2010-12-09 10:50:00
    通常我们是拷贝文件到u盘,然后在一个一个机器去拷贝。这是最基础也是最容易想到的方法。  或者我们可以把要拷贝的文件放某个机器(如机器A)上面的共享文件夹中,然后目标机(如机器B)上run窗口中输入...
  • // 在D中创建文件test.txt,文件中的内容为:“hello Java” File file = new File("D:/test.txt"); StringBuilder builder = new StringBuilder(); builder.append("hello java"); OutputStreamWriter osw = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,155
精华内容 66,062
关键字:

怎么拷贝文件到c盘