如果满足某些条件,我想将文件从一个目录复制到另一个目录而不删除原始文件.我还想将新文件的名称设置为特定值.
我正在使用C#并使用FileInfo类.虽然它确实有CopyTo方法.它没有给我设置文件名的选项.而MoveTo方法允许我重命名文件,删除原始位置的文件.
最好的方法是什么?
我正在尝试使用Adm-Zip将文件打包到zip文件中
var AdmZip = require('adm-zip');
var pathToZip = 'build/release/Ext.zip';
var zip = new AdmZip();
zip.addLocalFile('background.js');
zip.addLocalFile('chrome_ex_oauth.html');
zip.addLocalFolder('images');
zip.writeZip(pathToZip);
Run Code Online (Sandbox Code Playgroud)
但是,所有文件都将作为文件夹添加到zip中,并且实际内容不会被压缩.
入门参考如下,这似乎是一个非常简单的例子,它没有按预期工作.我究竟做错了什么? https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction
我曾经读过Imaar Spaanjars关于如何构建3层应用程序的文章.(http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1)这已成为我编码的基础.
因此,我通过继承a来实现集合List<T>.因此,如果我有一个名为Employee的类,要实现一个集合,我还将有一个Employees类,如下所示.
class Employee
{
int EmpID {get;set;}
string EmpName {get;set;}
}
class Employees : List<Employee>
{
public Employees(){}
}
Run Code Online (Sandbox Code Playgroud)
我从来没有真正质疑这一点,因为它为我做了工作.但是现在我开始尝试一些事情,我不确定这是否是正确的方法.
例如,如果我想从Employees获得一个子集,例如
Employees newEmployees = (Employees) AllEmployees.FindAll(emp => emp.JoiningDate > DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
这会抛出System.InvalidCastException.但是,如果我使用以下内容则没有问题.
List<Employee> newEmployees = AllEmployees.FindAll(emp => emp.JoiningDate > DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
那么我该如何实现Employees以便我不必List<Employee>在DAL或BLL中明确使用?或者我怎么摆脱InvalidCastexception?
我正在转换一些现有代码以遵循ECMA脚本,我使用ESLint遵循编码标准.我有以下ecmascript方法
static getArrayOfIndices(text, char) {
let resultArray = [];
let index = text.indexOf(char);
const lastIndex = text.lastIndexOf(char);
while (index <= lastIndex && index !== -1) {
resultArray.push(index);
if (index < lastIndex) {
index = text.substr(index + 1).indexOf(char) + index + 1;
} else {
index = lastIndex + 1999; // some random addition to fail test condition on next iteration
}
}
return resultArray;
}
Run Code Online (Sandbox Code Playgroud)
对于resultArray的声明,ESLint会抛出错误
ESLint: `resultArray` is never modified, use `const`instead. (prefer-const)
Run Code Online (Sandbox Code Playgroud)
但是由于元素被推入数组,是不是被修改了?
我有一个用户控件,如果执行某个操作,我想重定向到用户所在的页面,并带有一些额外的查询字符串参数.
所以,如果UserControl.ascx在Home.aspx上,我想重定向到Home.aspx?action = true,如果UserControl.ascx在Profile.aspx上,我想重定向到Profile.aspx?action = true
基本上,在我的UserControl.ascx.cs中,我想获取父页面的URL.我怎么才能得到它?
我正在尝试使用导入向导将数据从excel导入到Sql Server.在第一步中,一切似乎都很好.该向导能够读取excel文件并正确识别列.但是在进程实际运行的最后一步中,它没有给出以下错误:
错误0xc020901c:数据流任务1:输出"Excel源输出"(9)上的输出列"AlternateName"(24)出错.返回的列状态为:"文本被截断,或者目标代码页中的一个或多个字符不匹配.".(SQL Server导入和导出向导)
错误0xc020902a:数据流任务1:"输出列"AlternateName"(24)"失败,因为发生了截断,并且"输出列"AlternateName"(24)"上的截断行处置指定了截断失败.指定组件的指定对象上发生截断错误.(SQL Server导入和导出向导)
错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.组件"Source - Sheet1 $"(1)上的PrimeOutput方法返回错误代码0xC020902A.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.(SQL Server导入和导出向导)
列AlternateName的最大数据长度为658个字符.目标表将AlternateName列定义为varchar(1000).所以我不确定为什么我会收到这个错误.但后来我注意到了这一点

我有预感,这可能导致问题.但是,如何更改定义为varchar 255的Source列?
我在其中一个页面中启用了输出缓存,如下所示:
<%@ OutputCache Duration="300" VaryByParam="*"%>
Run Code Online (Sandbox Code Playgroud)
问题是有时会出现异常,我们会显示相应的消息.但是此页面随后被缓存,其他用户也看到了异常消息.例如,假设数据库超时,因此抛出了Sql异常.捕获此异常并显示一条消息"连接到数据库时出错.请在一段时间后尝试".现在,此消息被缓存并显示给其他用户,甚至不查询数据库.
所以我想要做的是在有异常的情况下使特定的输出缓存无效,或者在有异常时不缓存.如何才能做到这一点?
这适用于ASP.NET 3.5 Webforms.
我必须与第三方API集成.要使用该服务,我必须"POST"到具有某些参数的特定URL.
该服务提供的示例代码在php中,如下所示
$data = array('From' => '0999999', 'To' => '08888888');
$curl = curl_init();
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); <--- Ignore SSL warnings
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用WebRequest类在.net中实现相同的功能.但是,我对如何设置post参数数据感到有点困惑.我认为上面的$ data只不过是一本词典.所以我创建了一个等效的字典.但是,如何使用字典值设置post参数?
在http://msdn.microsoft.com/en-us/library/debx8sh9.aspx中,他们将字符串序列化为字节数组,然后将其设置为dataStream中的post参数.我如何为字典做同样的事情?
或者我的方法不正确?有一个更好的方法吗?
我正在调用第三方服务,他们将响应发送为Xml.但是,当我使用WebClient调用服务时,我得到的响应是一个字节数组.
var client = new WebClient();
var result = client.UploadValues(post_url, data);
Run Code Online (Sandbox Code Playgroud)
结果是一个字节数组.如何将其转换为XML以读取第三方服务给出的响应?
在我的flux/react 设置中,我将ActionTypes 定义为keyMirror。
export const ActionType = keyMirror({
START_TIMER: null,
STOP_TIMER: null,
PERFORM_STARTUP_CHECKS: null,
SELECT_TASK_SERVICE:null,
ADD_TASK: null,
CLEAR_ALL_TASKS: null,
COMPLETE_TASK: null,
UNDO_COMPLETE_TASK: null,
EDIT_TASK_TEXT: null,
});
Run Code Online (Sandbox Code Playgroud)
然后我定义不同类型的 Action 如下:
export type TaskAction = {
type: ActionType.ADD_TASK,
text: string
} | {
type: ActionType.COMPLETE_TASK,
taskId: string
}
export type TimerAction = {
type: ActionType.START_TIMER
} | {
type: ActionType.STOP_TIMER
}
Run Code Online (Sandbox Code Playgroud)
这些不同类型的动作对应不同的商店。例如
In TasksStore
.
.
reduce(state: TasksList, action: TaskAction)
In TimerStore
.
.
reduce(state: State, action: TimerAction)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行流程时,无法识别该操作。
56: indexOfTask = …Run Code Online (Sandbox Code Playgroud) asp.net ×4
c# ×4
javascript ×3
adm-zip ×1
arrays ×1
ascx ×1
caching ×1
collections ×1
ecmascript-6 ×1
eslint ×1
file-io ×1
flowtype ×1
list ×1
node.js ×1
outputcache ×1
reactjs-flux ×1
sql-server ×1
webforms ×1
zip ×1