我真的很想知道这段代码是做什么的:
scala> import java.nio.file._
import java.nio.file._
scala> Files.copy(Paths.get(""), Paths.get(""))
res0: java.nio.file.Path =
Run Code Online (Sandbox Code Playgroud)
不应该抛出一个NoSuchFileException?
阅读JavaDoc揭示:
默认情况下,如果目标文件已存在或者是符号链接,则复制将失败,除非源和目标是同一文件,在这种情况下,方法完成而不复制文件.
但我不确定这是真正的原因,因为Files.copy(Paths.get("a"), Paths.get("a"))失败了.
引用此问题/代码:
我正在尝试将一小撮子目录复制到另一个目录.我想要更新此代码:
Dim fso As System.Object = New System.Object
fso = CreateObject("scripting.filesystemobject")
fso.copyfolder(sour, dest)
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
System.IO.DirectoryNotFoundException:找不到路径'C:\ Temp\Summer2011\Newfolder\Copy of New Text Document.txt'的一部分.System.IO.File.Copy.Copy(String sourceFileName,String destFileName)的System.IO.File.InternalCopy(String sourceFileName,String destFileName,Boolean overwrite)中的System.IO._E_Error.WinIOError(Int32 errorCode,String maybeFullPath). .等等
有了这个.NET版本
Public Overrides Sub OnClick()
Dim sour As String = "C:\Temp243"
Dim dest As String = "C:\Temp\Summer2011\"
CopyDirectory(sour, dest)
End Sub
Private Sub CopyDirectory(ByVal SourcePath As String, ByVal DestPath As String)
If Directory.Exists(DestPath) Then
Directory.CreateDirectory(DestPath)
End If
For Each File As String In Directory.GetFiles(SourcePath)
Dim dest As String = IO.Path.Combine(DestPath, …Run Code Online (Sandbox Code Playgroud) 搜索后,我没能找到一个很容易理解的解释,为什么额外的4个使用时对加BlockCopy方法(如图所示这里,这里,这里,这里)
该文件说:
顾名思义,BlockCopy方法整体复制一个字节块,而不是一次复制一个字节.因此,如果src和dst引用相同的数组,并且srcOffset + count -1的范围与dstOffset + count - 1的范围重叠,则重叠字节的值在复制到目标之前不会被覆盖.在以下示例中,名为arr的数组中的字节0-16的值将复制到字节12-28.尽管范围重叠,但源字节的值已成功复制.
但是我并没有真正明白这一点,并希望有人能够以不同的方式解释它(或发布一个解释这个的资源的链接),以及为什么需要添加这些额外的4个字节.
为清楚起见,这里是我所指的代码:
作为压缩方法的一部分:
byte[] gzBuffer = new byte[compressed.Length + 4];
System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
Run Code Online (Sandbox Code Playgroud)
作为解压缩方法的一部分:
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
Run Code Online (Sandbox Code Playgroud) 不知道为什么它看起来如此糟糕,但是当我将图像复制到另一个图像上时,它看起来非常糟糕,就像它因某种原因丢失了几乎所有的颜色.
$img = imagecreate(240, 140);
$wall = imagecreatefrompng($src);
imagecopyresampled($img, $wall, 0, 0, 40, 340, 240, 140, 240, 140);
Run Code Online (Sandbox Code Playgroud)
我一直试图找到一个解决方案,但我似乎无法找到一个解决方案,任何人都非常善于使用GD可以提供帮助吗?我不能使用imagemagick.
我正在使用C#将文件从一个目录复制到另一个目录.我正在使用来自msdn的代码,但它很慢,需要一分钟左右来复制几个演出.在资源管理器中只需几秒钟. http://channel9.msdn.com/Forums/TechOff/257490-How-Copy-directories-in-C 有一种更快的方式.. :)
private static void Copy(string sourceDirectory, string targetDirectory)
{
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
CopyAll(diSource, diTarget);
}
private static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
// Check if the target directory exists, if not, create it.
if (Directory.Exists(target.FullName) == false)
{
Directory.CreateDirectory(target.FullName);
}
// Copy each file into it's new directory.
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
}
// Copy each subdirectory using recursion.
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) …Run Code Online (Sandbox Code Playgroud) 在尝试将TextView文本复制到剪贴板时,我做错了什么?
我的活动类中的代码:
@Override
public boolean onContextItemSelected(MenuItem item) {
String selectedItem = item.getTitle().toString().trim();
try {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip;
if (selectedItem.equals("Copy Query")) {
clip = ClipData.newPlainText("Query",tv1.getText());
clipboard.setPrimaryClip(clip);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
错误:
04-17 03:10:54.056: E/AndroidRuntime(503): FATAL EXCEPTION: main
04-17 03:10:54.056: E/AndroidRuntime(503): java.lang.NoClassDefFoundError: android.content.ClipboardManager
04-17 03:10:54.056: E/AndroidRuntime(503): at com.ewe.radixcalculator.CalculatorActivity.onContextItemSelected(CalculatorActivity.java:68)
04-17 03:10:54.056: E/AndroidRuntime(503): at android.app.Activity.onMenuItemSelected(Activity.java:2199)
04-17 03:10:54.056: E/AndroidRuntime(503): at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2744)
04-17 03:10:54.056: E/AndroidRuntime(503): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
04-17 03:10:54.056: E/AndroidRuntime(503): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
04-17 03:10:54.056: E/AndroidRuntime(503): at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:137)
04-17 03:10:54.056: E/AndroidRuntime(503): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:874) …Run Code Online (Sandbox Code Playgroud) 直接赋值(即 =)与转换内容相同char*,然后使用for循环来逐字节复制它吗?*
我想知道一种方法是否优于另一种方法.
struct A
{
int a;
int b;
} Test;
void* Buffer = malloc(1024);
// Casting and byte copying
for (int i=0; i != 8; i++)
{
((char*)Buffer)[i] = ((char*)Test)[i];
}
// Assignment
((A*)Buffer)[0] = Test;
Run Code Online (Sandbox Code Playgroud)
*所有类型都是按位可复制的.
编辑:根据答案,memcopy与'='相同
在这里发现了同样的问题..我正在尝试使用代码,但我的数据.我绝不是一个程序员..我几乎可以采取任何代码,然后让它适合我.
这是我的
@echo on
setLocal DisableDelayedExpansion
pushd N:\
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%G in ('dir/b/od') do (set newest=%%G)
copy %newest% G:\Server_Files\AMI_DATA\TEXT_FILES\NewFile.csv
PAUSE
POPD
Run Code Online (Sandbox Code Playgroud)
结果......
C:\Documents and Settings\belcherj\Desktop\AMI_BATCH>setLocal DisableDelayedExpa
nsion
C:\Documents and Settings\belcherj\Desktop\AMI_BATCH>pushd N:\
N:\>setLocal EnableDelayedExpansion
N:\>for /F "tokens=* delims= " %G in ('dir/b/od') do (set newest=%G )
N:\>(set newest=System Blink Count__2012-06-27 01_00_46.csv )
N:\>(set newest=System Blink Count__2012-06-28 01_00_32.csv )
N:\>(set newest=System Blink Count__2012-06-29 01_00_33.csv )
N:\>(set newest=System Blink Count__2012-06-30 01_00_42.csv )
N:\>(set newest=System Blink Count__2012-07-01 01_00_32.csv …Run Code Online (Sandbox Code Playgroud) 我正在编写一个工具来在DOCX文件中进行一些小文本替换,这是一种压缩格式.我的方法是ZipEntry使用a将原始文件中的条目内容复制到修改后的文件中ZipOutputStream.对于大多数DOCX文件,这种方法效果很好,但偶尔我会遇到ZipException有关我写的内容与其中包含的元信息ZipEntry(通常是压缩大小的差异)之间的差异的问题.
这是我用来复制内容的代码.为简洁起见,我删除了错误处理和文档处理; 到目前为止,我还没有遇到过文档条目的问题.
ZipFile original = new ZipFile(INPUT_FILENAME);
ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(OUTPUT_FILE));
Enumeration entries = original.entries();
byte[] buffer = new byte[512];
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry)entries.nextElement();
if ("word/document.xml".equalsIgnoreCase(entry.getName())) {
//perform special processing
}
else{
outputStream.putNextEntry(entry);
InputStream in = original.getInputStream(entry);
while (0 < in.available()){
int read = in.read(buffer);
outputStream.write(buffer,0,read);
}
in.close();
}
outputStream.closeEntry();
}
outputStream.close();
Run Code Online (Sandbox Code Playgroud)
将ZipEntry对象直接复制ZipFile到另一个对象的正确或惯用方法是什么?
我搜索并搜索过,但我找不到任何我发现的代码.我很抱歉,如果这是重复旧的,但我现在花了2天试图让这10行工作,我在我的智慧结束没有留下头发:-(
我正在运行Perl 5.8.8.
我想在Perl中填充哈希数组,使其包含我正在更新的单个哈希变量的多个副本.我的代码在这里:
use strict;
use warnings;
my @array;
my %tempHash = (state => "apple", symbol => "54", memberId => "12345");
push(@array, \%tempHash);
%tempHash = (state => "tiger", symbol => "22", memberId => "12345");
push(@array, \%tempHash);
%tempHash = (state => "table", symbol => "37", memberId => "12345");
push(@array, \%tempHash);
printf("%p %p %p\n", $array[0], $array[1], $array[2]);
foreach my $entry (@array){
printf("state: %s\n", $entry->{state});
printf("memberId: %s\n", $entry->{memberId});
printf("symbol: %s\n\n", $entry->{symbol});
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
1868954 18688d0 18688c4
state: table
memberId: 12345 …Run Code Online (Sandbox Code Playgroud)