Trouble delecting UNC file on window 1.8.4

I have a problem delecting a file that has a UNC path. I am using 1.8.4
on windows and this same thing did work in 1.8.2.

Here is the pertinent excerpt of code:

puts shp.source; ==> //rm-graff-c/c$/ftpxfr/somefile2454018103834.txt
puts LOCDIR + ‘/failed_files’ ==>
//rm-graff-c/c$/ftpxfr//failed_files
cp(shp.source, LOCDIR + ‘failed_files’) ==> this works
puts File.file?(shp.source) ==> this returns true
rm(shp.source) ==> this fails with:

C:/ruby/lib/ruby/1.8/fileutils.rb:1281:in `unlink’:
Permission denied - //rm-graff-c/c$/ftpxfr/somefile2454018103834.txt
(Errno::EACCES)

I also tried File.delete(…) and several variations. I really doubt
that the file is open. I do read from earlier in the program using CSV
but this is in a block and the end of the block (to my knowlege) should
be automatically closing the file. I could resort to using .new and
explictily closing the file when CSV reading is done but I more suspect
that someting has happened between 1.8.2 and 1.8.4 that is the culprit.

Any ideas? Is this a perhaps a known issue that 1.8.5 fixes. I can with
a little effort try on unix but I am not sure how to form the equivelent
UNC pathname in unix to //rm-graff-c/c$/ftpxfr/somefile2454018103834.txt

  • is the C$ just a windows thing?

Thanks,
Carl

Hi,

At Fri, 13 Oct 2006 16:35:42 +0900,
Carl G. wrote in [ruby-talk:219487]:

I have a problem delecting a file that has a UNC path. I am using 1.8.4
on windows and this same thing did work in 1.8.2.

I don’t think it is related to UNC.

Probably, just my guess, you are not the owner of that, are
you?

FileUtils since 1.8.3 changes the permission to 0700, whereas
0777 before, in order to turn read-only flag off. 0700 means
it isn’t writable other than the onwer.

  • is the C$ just a windows thing?

No, but it is just an ordinary directory.

Nobuyoshi N. wrote:

Hi,

At Fri, 13 Oct 2006 16:35:42 +0900,
Carl G. wrote in [ruby-talk:219487]:

I have a problem delecting a file that has a UNC path. I am using 1.8.4
on windows and this same thing did work in 1.8.2.

I don’t think it is related to UNC.

Probably, just my guess, you are not the owner of that, are
you?

FileUtils since 1.8.3 changes the permission to 0700, whereas
0777 before, in order to turn read-only flag off. 0700 means
it isn’t writable other than the onwer.

  • is the C$ just a windows thing?

No, but it is just an ordinary directory.

Well thanks for both respnses but they “seem” to be somewhat in
conflict. But you both seem to indicate that I must be the owner of this
file. I created this file in Ruby using the CSV library while I was
logged in as a suer whith administrative priviliges.

  1. So how do I find out who in owner of this file?
  2. The cp command does work which seems to imply that I have write
    priviliges to the subdirectory where I an copying the file to.
  3. I even created a new separate share that doesn’t utilize the system
    admin defualt C$ share and gave myself FULL RIGHTS to the folder and
    file - still no luck.

Perhaps I need to explore the FileUtil source code to see if I can find
out whay this is happening. Is ther a way to change the permission prior
to trying the delete so that I can delete it?

Thanks for trying to solve this for me,
Carl

Nobuyoshi N. wrote:

Hi,

At Fri, 13 Oct 2006 16:35:42 +0900,
Carl G. wrote in [ruby-talk:219487]:

I have a problem delecting a file that has a UNC path. I am using 1.8.4
on windows and this same thing did work in 1.8.2.

I don’t think it is related to UNC.

Probably, just my guess, you are not the owner of that, are
you?

FileUtils since 1.8.3 changes the permission to 0700, whereas
0777 before, in order to turn read-only flag off. 0700 means
it isn’t writable other than the onwer.

  • is the C$ just a windows thing?

No, but it is just an ordinary directory.

Do you think it is becuase you are going between two different boxes and
I am trying to do the delete on the same box that the file was created
and the Ruby program is running?

Carl G. wrote:
Thanks to the bvoth of you for tryin gto resolve this for me. Turns out
it was a b0ne0head mistake on my part as usual (how embarrasing). I did
not close teh file after creating it as sheown in the little except that
follows:

reader = CSV.open(locXfrFile, 'r')
top_row = reader.shift  # skip top row as it just contains column 

names
reader.each {|r|
l = ShpLine.new
ordno = r[3][0,r[3].length-10]
order[ordno] = ShpOrd.new unless order[ordno]
attrb_assign(order[ordno], l, “ship_date”, r[0])

detail << l
}
reader.close <= I forgot to put this clcse statement in - duh!

Carl G. wrote:

Nobuyoshi N. wrote:

Hi,

At Fri, 13 Oct 2006 16:35:42 +0900,
Carl G. wrote in [ruby-talk:219487]:

I have a problem delecting a file that has a UNC path. I am using 1.8.4
on windows and this same thing did work in 1.8.2.

I don’t think it is related to UNC.

Probably, just my guess, you are not the owner of that, are
you?

FileUtils since 1.8.3 changes the permission to 0700, whereas
0777 before, in order to turn read-only flag off. 0700 means
it isn’t writable other than the onwer.

  • is the C$ just a windows thing?

No, but it is just an ordinary directory.

Do you think it is becuase you are going between two different boxes and
I am trying to do the delete on the same box that the file was created
and the Ruby program is running?

On 10/13/06, Carl G. [email protected] wrote:

rm(shp.source) ==> this fails with:
that someting has happened between 1.8.2 and 1.8.4 that is the culprit.

Any ideas? Is this a perhaps a known issue that 1.8.5 fixes. I can with
a little effort try on unix but I am not sure how to form the equivelent
UNC pathname in unix to //rm-graff-c/c$/ftpxfr/somefile2454018103834.txt

  • is the C$ just a windows thing?

Are you sure you really have the permissions you need to delete that
file?
It’s working fine for me on 1.8.4 between two Windows XP systems.

irb(main):004:0> file_path = “//10.1.2.3/c$/test.txt
=> “//10.1.2.3/c$/test.txt
irb(main):005:0> File.exist?(file_path)
=> true
irb(main):006:0> File.delete(file_path)
=> 1
irb(main):007:0> File.exist?(file_path)
=> false
irb(main):008:0>

I also tried it with escaped backslashes: “\\10.1.2.3.\c$\test.txt”
…and it worked as well.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs