# Adding file to vector claims in is a char, but typeof(file) is string

**URL:** <https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678>\
**Category:** New to Julia\
**Created:** [June 10, 2021, 1:54pm UTC](https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678 "2021-06-10T13:54:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [June 10, 2021, 1:54pm UTC](https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678/1 "2021-06-10T13:54:07Z")

</div>

I have this code

```julia
filenames = Vector{String}()
for file in readdir()
    println(typeof(file))
    append!(filenames,file)
end

```

which generates an error:

```julia
MethodError: Cannot `convert` an object of type Char to an object of type String
Closest candidates are:
  convert(::Type{String}, ::String) at essentials.jl:210
  convert(::Type{T}, ::T) where T<:AbstractString at strings/basic.jl:231
  convert(::Type{T}, ::AbstractString) where T<:AbstractString at strings/basic.jl:232
  ...

Stacktrace:
 [1] setindex!(A::Vector{String}, x::Char, i1::Int64)
   @ Base ./array.jl:839
 [2] _append!(a::Vector{String}, #unused#::Base.HasLength, iter::String)
   @ Base ./array.jl:991
 [3] append!(a::Vector{String}, iter::String)
   @ Base ./array.jl:981
 [4] top-level scope
   @ ./In[21]:4
 [5] eval
   @ ./boot.jl:360 [inlined]
 [6] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
   @ Base ./loading.jl:1094

```

The confusing part is that the print message is `String`. So `file` is first a `String`, but when I try to add it to the vector, it is a `Char`? What is going on?

---

<div class="post-metadata">

**Author:** ![Jeff\_Emanuel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff_emanuel/32/15440_2.png) [@Jeff\_Emanuel](https://discourse.julialang.org/u/Jeff_Emanuel)\
**Post date:** [June 10, 2021, 1:56pm UTC](https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678/2 "2021-06-10T13:56:41Z")

</div>

[Collections and Data Structures · The Julia Language](https://docs.julialang.org/en/v1/base/collections/#Base.append)!

The elements of file (ie., chars) are appended to filename. You probably want push! instead.

---

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [June 10, 2021, 1:57pm UTC](https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678/3 "2021-06-10T13:57:28Z")

</div>

Ahh!  
Thanks a lot, I totally get it now!

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [June 10, 2021, 1:57pm UTC](https://discourse.julialang.org/t/adding-file-to-vector-claims-in-is-a-char-but-typeof-file-is-string/62678/4 "2021-06-10T13:57:58Z")

</div>

And if its not a MWE just use:

```julia
filenames=readdir()

```
