标签: file-copying

从目录结构复制文件但排除指定的文件夹

我希望将文件从目录结构复制到新文件夹.我不是要保留文件结构,只是获取文件.文件结构可以有嵌套文件夹,但是名为'old'的文件夹中的任何内容我都不想移动.

我做了几次尝试,但我的PowerShell知识非常有限.

示例是当前文件结构的存在位置:

Get-ChildItem -Path "C:\Example\*" -include "*.txt -Recurse |% {Copy-Item $_.fullname "C:\Destination\"}
Run Code Online (Sandbox Code Playgroud)

这给了我所有我想要的文件,包括我不想要的所有文件.我不想包含"旧"文件夹中的任何文件.要注意:有多个"旧"文件夹.我试过--exclude,但看起来它只与文件名有关,我不知道如何在路径名上排除 - 同时仍然复制文件.

有帮助吗?

powershell file-copying

5
推荐指数
1
解决办法
9992
查看次数

当目录名中有空格时如何使用copyfile?

我试图在Windows下执行一个简单的文件复制任务,我遇到了一些问题.

我的第一次尝试是使用

import shutils

source = 'C:\Documents and Settings\Some directory\My file.txt'
destination = 'C:\Documents and Settings\Some other directory\Copy.txt'

shutil.copyfile(source, destination)
Run Code Online (Sandbox Code Playgroud)

copyfile 无法找到源和/或无法创建目的地.

我的第二个猜测是使用

shutil.copyfile('"' + source + '"', '"' + destination + '"')
Run Code Online (Sandbox Code Playgroud)

但它又失败了.

任何提示?


编辑

结果代码是

IOError: [Errno 22] Invalid argument: '"C:\Documents and Settings\Some directory\My file.txt"'
Run Code Online (Sandbox Code Playgroud)

python windows file-copying

5
推荐指数
1
解决办法
1万
查看次数

如何同时将一个文件复制到多个位置

我想找到一种方法将一个文件同时复制到多个位置(使用C#).

意味着我不希望原始文件只被读取一次,并将文件"粘贴"到另一个位置(在本地网络上).

就我的测试给我看的那样

File.Copy() 
Run Code Online (Sandbox Code Playgroud)

将永远再次阅读来源.

据我所知,即使在使用内存时,该内存片也会被锁定.

所以基本上,我想模仿"复制 - 粘贴"形式的一个"复制"和多个"粘贴",而无需再次从硬盘驱动器重新读取.

为什么?因为最终,我需要将一个文件夹(超过1GB)复制到许多计算机,瓶颈是我需要读取源文件的部分.

那么,甚至可以实现吗?

c# file-io memorystream copy file-copying

5
推荐指数
1
解决办法
5104
查看次数

将Rstudio插件包中包含的.rmd文件复制到用户定义的目录中

在这里有一个rstudio addin包.

其中一个插件允许用户定义目录,它会将位于包中的文件复制到该目录.

该文件位于:

atProjectManageAddins/inst/Docs/RMarkdownSkeleton.Rmd
Run Code Online (Sandbox Code Playgroud)

我试图将它复制到用户定义的目录,如下所示:

 file.copy("inst/Docs/RMarkdownSkeleton.Rmd", 
           paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
Run Code Online (Sandbox Code Playgroud)

我试图将它从包中的位置复制到用户定义的位置(基于两个单独的参数DirFolderName).

但这似乎不起作用.我的假设是我没有以正确的方式引用包目录.我试过了./Inst/,~/Inst/也许还有几个.我现在的假设是,有一个更系统的原因导致我无法file.copy()上班.

有什么建议?这甚至可能吗?

请注意,如果我通过source()和本地运行该功能runGadget(),它可以正常工作.只有在安装软件包并且我使用RStudio addins GUI引用它的软件包时,它才会失败.因此,我很确定我没有正确定义已安装.Rmd文件的文件路径.

编辑:我已经根据Carl的建议(在github上可以看到)更改为以下内容,但文件仍未被复制.

file.copy(system.file("Docs","Rmarkdownskeleton.rmd",package="atProjectManageAd??dins"),
 paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
Run Code Online (Sandbox Code Playgroud)

r file-copying r-package

5
推荐指数
1
解决办法
223
查看次数

PowerShell:尽管使用Windows资源管理器的过程相同,但复制项仍然失败

我有一个脚本,需要定期(每个小时)复制文件。我可以使用Windows资源管理器打开源文件夹和目标文件夹,然后复制文件而不会出现问题。

但是,如果我在PowerShell中尝试相同的操作,则会得到“拒绝访问路径”错误。我已经检查了共享的权限,并且拥有完全访问权限。为什么通过PowerShell失败?

复制项命令:

Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames -Force
Run Code Online (Sandbox Code Playgroud)

错误:

Copy-Item : Access to the path '\\bts13r2b\tnsnames\tnsnames.ora' is denied.
At line:1 char:1
+ Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : PermissionDenied: (\\idmststtrm2\tns_admin$\tnsnames.ora:FileInfo) [Copy-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item : Access to the path '\\bts13r2b\tnsnames\tnsnames.ora' is denied.
At line:1 char:1
+ Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Copy-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.CopyItemCommand
Run Code Online (Sandbox Code Playgroud)

编辑:

当我Get-ChildItem对目标路径执行a时,我可以看到文件夹内容。

get-item的结果:

get-item \\idmststtrm2\tns_admin$\tnsnames.ora

Directory: \\idmststtrm2\tns_admin$ …
Run Code Online (Sandbox Code Playgroud)

powershell file-copying

5
推荐指数
1
解决办法
2万
查看次数

复制文件时"无法找到路径的一部分"错误

我已经在互联网上搜索了这个,但仍然没有找到解决方案.作为一个终极尝试,我希望有人能给我一个确切的答案.

当我尝试在文件资源管理器中将文件从目录复制到另一个文件时,我得到了这个错误.我正在尝试自己做.它有一个用于浏览目录的treeview控件和一个用于显示目录内容的listview控件.部分代码如下所示:

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
        sourceDir = treeView1.SelectedNode.FullPath;
        for (int i = 0; i < listView1.SelectedItems.Count; ++i)
        {
            ListViewItem l = listView1.SelectedItems[i];
            toBeCopied[i] = l.Text; // string[] toBeCopied, the place where I save the file names I want to save
        }
    }


private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
    {
        targetDir = treeView1.SelectedNode.FullPath;
        try
        {
            for (int i = 0; i < toBeCopied.Length; ++i)
            {
                File.Copy(sourceDir + "\\" + toBeCopied[i], targetDir + "\\" + toBeCopied[i], true);
                refreshToolStripMenuItem_Click(sender, …
Run Code Online (Sandbox Code Playgroud)

c# path file-copying

4
推荐指数
2
解决办法
3万
查看次数

递归复制文件

我在C#中找到了一个用于执行递归文件复制的小片段,但我有点难过.我基本上需要将目录结构复制到另一个位置,沿着这条线......

来源:C:\ data\servers\mc

目标:E:\ mc

我现在的复制功能代码是......

    //Now Create all of the directories
    foreach (string dirPath in Directory.GetDirectories(baseDir, "*", SearchOption.AllDirectories))
    {
        Directory.CreateDirectory(dirPath.Replace(baseDir, targetDir));
    }


    // Copy each file into it’s new directory.
    foreach (string file in Directory.GetFiles(baseDir, "*.*", SearchOption.AllDirectories))
    {
        Console.WriteLine(@"Copying {0}\{1}", targetDir, Path.GetFileName(file));
        if (!CopyFile(file, Path.Combine(targetDir, Path.GetFileName(file)), false))
        {
            int err = Marshal.GetLastWin32Error();
            Console.WriteLine("[ERROR] CopyFile Failed on {0} with code {1}", file, err);
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题是,在第二个范围内,我要么:

  1. 使用Path.GetFileName(file)以获得实际文件名不带路径,但我失去了目录"MC"的目录结构
  2. 使用没有Path.Combine的"文件".

无论哪种方式,我都要做一些讨厌的字符串工作.有没有一种很好的方法在C#中执行此操作(我对.NET API缺乏了解导致我过度复杂化的事情)

.net c# file-copying

4
推荐指数
2
解决办法
2万
查看次数

如何在ICEfaces中显示Java文件复制操作的进度?

我有一个ICEfaces Web应用程序,需要执行文件复制操作并向用户显示进度条.

目前,复制是通过调用'cpio'来完成的,该操作在操作完成之后才能使Java代码进展.虽然可以使用Java来监视写入的字节数与读取的字节数以估计复制进度,但我认为如果我用Java编写实际的复制操作,可能会有一个更简单的解决方案.我仍然会使用'cpio'进行存档,但实际的副本将由Java类执行.

我在搜索中发现的大多数帮助都与progressMonitor有关,它包含一个swing组件,我不确定它能做我想做的事情.我只需要一个整数/两倍的进度,我可以将其作为100%的百分比提供给我的JSF进度条组件.

java file-copying progress-bar

4
推荐指数
1
解决办法
3786
查看次数

将文件从一个文件夹复制到另一个文件夹

我正在尝试将文件从一个文件夹复制到另一个文件夹.

这是我在我的代码中得到的:

public static void copyFile(String path) throws IOException{
   newPath = path;    
   File destination = new File ("E:/QA/chart.js"); 
   FileUtils.copyFile(destination, new File(newPath));      
}
Run Code Online (Sandbox Code Playgroud)

但它并未将所需文件复制到其位置.需要什么,从E盘复制chart.js并复制到newPath变量位置.有没有其他方法将文件从一个地方复制到另一个地方?

java file-copying

4
推荐指数
1
解决办法
3万
查看次数

在发布管道期间将文件复制到 Azure 应用服务

在Azure发布管道期间,我想将Git存储库中的文件复制到应用程序服务中的wwwroot目录。该任务的输出显示它复制了该文件,但该文件不存在。我想我没有正确指定目标文件夹。我目前将其设置为 d:\home\site\wwwroot。谢谢你的帮助。

azure file-copying azure-pipelines

4
推荐指数
1
解决办法
5357
查看次数