标签: overwrite

为什么 Bash 不会用新的数组覆盖我的数组?

我将我的用例剥离到这 3 行(加上输出):

A=(foo bar)
A=$(echo "spam egg")
echo ${A[@]}
spam egg bar
Run Code Online (Sandbox Code Playgroud)

它创建一个包含两个手写元素的数组。然后一段时间后,我想用命令行工具(例如ls *.vhd)的输出替换我的数组。Bash 只替换第一个元素,而不是替换数组,因此 bar 在最后被“附加”。

如果我使用另一个手写数组,则无法重现此行为。

A=(foo bar)
A=(spam egg)
echo ${A[@]}
spam egg
Run Code Online (Sandbox Code Playgroud)

所以我怀疑这与使用$(). 我该如何解决我的问题?

arrays bash overwrite

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

“ln -sf”不会覆盖目录的符号链接

ln -sf
Run Code Online (Sandbox Code Playgroud)

不会覆盖给定目录的符号链接。

参见例如

% ls -ld program*        
drwxr-xr-x 22 b users 4096 Nov 25 14:33 program
drwxr-xr-x 22 b users 4096 Nov 25 14:29 program-201611181546
-rw-r--r--  1 b users    0 Nov 25 14:34 program-current
% ln -fs program-201611181546 program-current
% ls -ld program*                            
drwxr-xr-x 22 b users 4096 Nov 25 14:33 program
drwxr-xr-x 22 b users 4096 Nov 25 14:29 program-201611181546
lrwxrwxrwx  1 b users   18 Nov 25 14:34 program-current -> program-201611181546
% ln -fs program program-current 
% ls …
Run Code Online (Sandbox Code Playgroud)

linux symlink ln overwrite

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

如何使用android存储访问框架正确覆盖文件内容

>> 背景

我想使用 SAF(存储访问框架字)将我的应用程序的数据文件保存到用户在存储介质上所需的位置。我首先在应用程序专用文件夹中创建文件,然后将其复制到用户从文件选择器对话框中选择的文件(代码稍后发布)。

此过程适用于新文件但对于现有文件,尽管文件选择器会警告覆盖文件,但在写入之前不会删除最终文件。

通过计算写入的字节数并使用十六进制编辑器调查文件,代码将正确的字节写入输出流,但是:如果现有文件的字节数多于要写入的字节数,则最终覆盖的文件已损坏(实际上并未损坏,请参阅下一节进行澄清),如果现有的字节数少于要写入的字节数,则最终覆盖的文件是正确的。

>> 更多细节和代码

我使用下面的代码来显示问题(jpg 为示例):我将尝试使用两个文件:

file1.jpg 166,907 bytes
file2.jpg 1,323,647 bytes
file3.jpg The final file with variable size
Run Code Online (Sandbox Code Playgroud)

首先,我将把 file1 复制到用户选择的名为 file3 的文件夹(目标文件),然后用 file2 覆盖它,最后我将用 file1 再次覆盖它。看看代码是什么以及会发生什么:

调用文件选择器的代码:

val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
    addCategory(Intent.CATEGORY_OPENABLE)
    type = "image/jpeg"
}
startActivityForResult(intent, request)
Run Code Online (Sandbox Code Playgroud)

现在在 onActivityResult() 我处理数据如下:

contentResolver.openOutputStream(fileUri)?.use {output->
        val input = FileInputStream(File(getExternalFilesDir(null),"Pictures/file1.jpg"))
    // file1.jpg for first run, file2.jpg for 2nd run and file1.jpg again for 3rd run     
        copyStream(input, output)

    }
Run Code Online (Sandbox Code Playgroud)

以及复制流的代码:

@Throws(IOException::class)
fun copyStream(input: InputStream, output: …
Run Code Online (Sandbox Code Playgroud)

android overwrite fileoutputstream storage-access-framework

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

Gradle 无法使用 overwrite:true 覆盖任务

我想创建一个 build.gradle 文件,它将加载另一个文件。

第二个文件应该有“defaulttasks”,这意味着当第一个文件中不存在任务时它们应该执行。

文件一:

apply from ("..otherfile.gradle")
task "hello"(overwrite: true) {
  doFirst{
    println "hello from here"
  }
}
Run Code Online (Sandbox Code Playgroud)

第二个文件:

task "hello" {
  doFirst{
    println "i am the old one"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它失败了

原因:java.lang.IllegalStateException:不支持替换可能已被其他插件使用的现有任务。为此任务使用不同的名称(“hello”)。

所以我尝试将第二个文件而不是任务更改为tasks.register("hello")

之后它不会失败,但它也会执行第二个。如何覆盖任务以使默认任务不再运行?

groovy overriding overwrite gradle

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

在javascript中禁用内置函数(警报)

简单:我想禁用/覆盖alert().

我可以这样做吗?

更重要的是,这样做是对的吗?

严格模式怎么样?

javascript alert overwrite strict

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

如果文件未被覆盖,则退出安装程序

我在用:

; Set output path to the installation directory.
SetOutPath $INSTDIR\

SetOverwrite on

; Put file there
File "ACC\*.APP"
Run Code Online (Sandbox Code Playgroud)

覆盖文件,但如果文件无法覆盖,那么我希望安装程序退出,如何执行此操作?

是否需要使用错误标志值?但是怎么样?

installer nsis file overwrite

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

是否允许在Base实例上编写Derived实例?

说,代码

    class Derived: public Base {....}

    Base* b_ptr = new( malloc(sizeof(Derived)) ) Base(1);
    b_ptr->f(2);
    Derived* d_ptr = new(b_ptr) Derived(3);
    b_ptr->g(4);
    d_ptr->f(5);
Run Code Online (Sandbox Code Playgroud)

似乎是合理的,LSP也很满意.

我怀疑当Base和Derived是POD时,此代码是标准允许的,否则不允许(因为vtbl ptr被覆盖).我的问题的第一部分是:请指出这种覆盖的准确前提条件.

可能存在其他标准允许的写入方式.

我的问题的第二部分是:还有其他方法吗?他们的确切先决条件是什么?

更新:我不想写这样的代码; 我对这种代码的理论可能性(或不可能)很感兴趣.所以,这是"标准纳粹"问题,不是"我怎么能......"的问题.(我的问题是否已移至其他stackoverflow站点?)

UPDATE2&4:析构函数怎么样?假设此代码的语义是"基础实例(通过衍生实例片段(破坏性地)更新").让我们假设,为简单起见,Base类有一个简单的析构函数.

更新3:对我来说最有趣的是访问途径的有效性b_ptr->g(4)

c++ memory overwrite language-lawyer

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

在PHP中禁止变量覆盖

是否可以防止变量被PHP覆盖?我正在制作一个具有一些保留变量的系统,我不希望它们在某一点之后被其他东西替换.有可能的?如果没有,我该怎么办才能接近这个?

其中一些变量是实例化的类,所以我不能将它们定义为常量.

php variables overwrite

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

StringBuilder - 完全替换现有字符串.任何方法?

我看到现有代码中的字符串用法有多个连接.声纳代码覆盖率建议使用StringBuilder.我正在更新代码以使用StringBuilder.但我想知道如何使用新字符串有效地覆盖现有内容.

在字符串表示中,如下所示:

String query = "select...";
if ( x ) {
    query = "select xyz...";
}
Run Code Online (Sandbox Code Playgroud)

使用StringBuilder,我使用了这个:

 StringBuilder query = new StringBuilder("select...");
 if ( x ) {
     // I need to overwrite the existing stringbuilder content here
     query = new StringBuilder("Select xyz..");
        //or
     query = query.replace(,,,);
        //or
     //Anything better
 }
Run Code Online (Sandbox Code Playgroud)

我希望有一个方法,如:

 query.replace("new string");
Run Code Online (Sandbox Code Playgroud)

用新字符串覆盖整个现有字符串.但它不可用.

java string stringbuilder replace overwrite

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

Python CSV覆盖

我正在尝试编写此代码,以便一旦结束,之前的答案将被保存,代码可以再次运行,而不会覆盖旧的答案.我将how,why和scale_of_ten变量转换为'with open'部分,并且我已经取得了一些成功,代码能够在文件执行的次数上工作,但每次执行时,旧的答案都会被覆盖.我如何编写代码,以便在获得新答案时保存旧答案?

import csv
import datetime
# imports modules

now = datetime.datetime.now()
# define current time when file is executed

how = str(raw_input("How are you doing?"))
why = str(raw_input("Why do you feel that way?"))
scale_of_ten = int(raw_input("On a scale of 1-10. With 10 being happy and 1 being sad. How happy are you?"))
#creates variables for csv file

x = [now.strftime("%Y-%m-%d %H:%M"),how,why,scale_of_ten]
# creates list for variables to be written in

with open ('happy.csv','wb') as f:
    wtr = csv.writer(f)
    wtr.writerow(x) …
Run Code Online (Sandbox Code Playgroud)

python csv overwrite

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