file的move方法和copy方法好像差不多,但是如何能实现复制一个文件,然后粘贴到别的磁盘下呢?

解决方案 »

  1.   

      private void CopyDirectory(string srcdir, string desdir)
            {
                string folderName = srcdir.Substring(srcdir.LastIndexOf("\\")+1);            string desfolderdir = desdir +"\\"+ folderName;            if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
                {
                    desfolderdir = desdir + folderName;
                }
                string[] filenames = Directory.GetFileSystemEntries(srcdir);            foreach (string file in filenames)// 遍历所有的文件和目录
                {
                    if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                    {                    string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                        if (!Directory.Exists(currentdir))
                        {
                            Directory.CreateDirectory(currentdir);
                        }                    CopyDirectory(file, desfolderdir);
                    }                else // 否则直接copy文件
                    {
                        string srcfileName = file.Substring(file.LastIndexOf("\\")+1);                    srcfileName = desfolderdir + "\\" + srcfileName;
                        if (!Directory.Exists(desfolderdir))
                        {
                            Directory.CreateDirectory(desfolderdir);
                        }
                        
                        
                        File.Copy(file, srcfileName);
                    }
                }
            }
      

  2.   

    好吧
    lz   你知道计算器的 临时存储机制吧计算器记录的再上一个数据以后 是不再回头的
    这就是一样的 。
    只是 copy的不是文件。只是一个 路径
      

  3.   

    我是学生,,现在刚学到OOP,才知道file类,老师让我们自学写一个资源管理器不懂存储机制
      

  4.   

    string folderName = srcdir.Substring(srcdir.LastIndexOf("\\")+1);string desfolderdir = desdir +"\\"+ folderName;子夜大哥,这两句代码是获取我当前选中的文件的路径嘛?
      

  5.   

    用 SHFileOperation 这个apiusing System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Text; 
    using System.Windows.Forms; 
    using System.Runtime.InteropServices; 
    namespace Learn 

        public partial class Form1 : Form 
        { 
            [DllImport("shell32.dll", SetLastError = true, CharSet = CharSet.Unicode)] 
            private static extern bool  SHFileOperation([In, Out]  SHFILEOPSTRUCT str); 
            private const int FO_MOVE = 0x1; 
            private const int FO_COPY = 0x2; 
            private const int FO_DELETE = 0x3; 
            private const ushort FOF_NOCONFIRMATION = 0x10; 
            private const ushort FOF_ALLOWUNDO = 0x40; 
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] 
            public class SHFILEOPSTRUCT 
            { 
                public IntPtr hwnd; 
                /// <summary> 
                /// 设置操作方式,移动:FO_MOVE,复制:FO_COPY,删除:FO_DELETE 
                /// </summary> 
                public UInt32 wFunc; 
                /// <summary> 
                /// 源文件路径 
                /// </summary> 
                public string pFrom; 
                /// <summary> 
                /// 目标文件路径 
                /// </summary> 
                public string pTo; 
                /// <summary> 
                /// 允许恢复 
                /// </summary> 
                public UInt16 fFlags; 
                /// <summary> 
                /// 监测有无中止 
                /// </summary> 
                public Int32 fAnyOperationsAborted; 
                public IntPtr hNameMappings; 
                /// <summary> 
                /// 设置标题 
                /// </summary> 
                public string lpszProgressTitle; 
            } 
            public Form1() 
            { 
                InitializeComponent(); 
            }         private void button1_Click(object sender, EventArgs e) 
            { 
                MessageBox.Show(CopyFile().ToString()); 
            } 
            private bool CopyFile() 
            { 
                SHFILEOPSTRUCT pm = new SHFILEOPSTRUCT(); 
                pm.wFunc = FO_COPY; 
                pm.pFrom = @"F:\Office2003sp2_xunchi.exe"; 
                pm.pTo = @"c:\a.exe"; 
                pm.fFlags = FOF_ALLOWUNDO;//允许恢复 
                pm.lpszProgressTitle = "哈哈"; 
                return !SHFileOperation(pm);         } 
        } 
    }
    http://www.csharpwin.com/csharpspace/9066r2724.shtml