[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Trouble delecting UNC file on window 1.8.4

Carl Graff

10/13/2006 7:36:00 AM

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


--
Posted via http://www.ruby-....

5 Answers

Wilson Bilkovich

10/13/2006 3:52:00 PM

0

On 10/13/06, Carl Graff <cgraff@chatsworth.com> wrote:
> 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?
>

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.

Nobuyoshi Nakada

10/13/2006 4:17:00 PM

0

Hi,

At Fri, 13 Oct 2006 16:35:42 +0900,
Carl Graff 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.

--
Nobu Nakada

Carl Graff

10/13/2006 5:05:00 PM

0

Nobuyoshi Nakada wrote:
> Hi,
>
> At Fri, 13 Oct 2006 16:35:42 +0900,
> Carl Graff 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


--
Posted via http://www.ruby-....

Carl Graff

10/13/2006 5:06:00 PM

0

Nobuyoshi Nakada wrote:
> Hi,
>
> At Fri, 13 Oct 2006 16:35:42 +0900,
> Carl Graff 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?

--
Posted via http://www.ruby-....

Carl Graff

10/13/2006 5:55:00 PM

0

Carl Graff 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 Graff wrote:
> Nobuyoshi Nakada wrote:
>> Hi,
>>
>> At Fri, 13 Oct 2006 16:35:42 +0900,
>> Carl Graff 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?


--
Posted via http://www.ruby-....